如何在Java中表示Oracle区间
我正在使用Java7和Hibernate4 希望使用oracle Interval数据类型()表示特定天数的间隔 想知道使用什么Java类型来映射这个Oracle Interval对象 我希望使用标准Java对象,而不是本文档中提到的任何oracle.sql.*对象 这是我正在玩的桌子:如何在Java中表示Oracle区间,java,database,oracle,hibernate,jpa,Java,Database,Oracle,Hibernate,Jpa,我正在使用Java7和Hibernate4 希望使用oracle Interval数据类型()表示特定天数的间隔 想知道使用什么Java类型来映射这个Oracle Interval对象 我希望使用标准Java对象,而不是本文档中提到的任何oracle.sql.*对象 这是我正在玩的桌子: 编辑 从那以后我就试过了 @Temporal(TemporalType.TIME) private java.util.Date deliveryPeriod; 获取错误: Caused by: java
编辑 从那以后我就试过了
@Temporal(TemporalType.TIME)
private java.util.Date deliveryPeriod;
获取错误:
Caused by: java.sql.SQLException: Invalid column type: getTime not implemented for class oracle.jdbc.driver.T4CIntervaldsAccessor
编辑2
我知道将它映射到Java字符串是可行的,但我希望它是某种日期对象,所以我不必自己解析它
我还希望避免使用oracle特定的数据类型,如oracle.sql.interval如果映射到字符串有效,那么您可以
持续时间检查以下内容:
您可以定义一个Interval Hibernate用户类型
然后您的实体将只使用整数:
@TypeDef(name="interval", typeClass = Interval.class)
@Type(type = "interval")
private Integer interval;
内部用户类型是Java整数到SQL间隔适配器
查看JPA Specification 2.0(JSR317)并搜索任何关于一般数据类型的章节。恐怕你在那里找不到太多。JPA只支持数字、字符串和日期。它们甚至不支持任何集合或XMLs数据类型,只支持标量。也许你得等一等。3.0. JPA必须覆盖所有数据库中的“最大公约数”。Oracle的所有特殊功能都被视为“非法”,因为这将破坏供应商的独立性。
@TypeDef(name="interval", typeClass = Interval.class)
@Type(type = "interval")
private Integer interval;