java - 如何在 Java 中表示 Oracle Interval

标签 java database oracle hibernate jpa

我正在使用 Java 7 和 hibernate 4。

想用oracle的Interval数据类型(http://psoug.org/definition/INTERVAL.htm)来表示一定天数的间隔。

想知道使用什么 Java 类型来映射这个 Oracle Interval 对象。

我想使用标准 Java 对象,而不是本文档中提到的任何 oracle.sql.* 对象 http://docs.oracle.com/cd/B28359_01/java.111/b31224/datacc.htm .

这是我正在玩的 table :


CREATE TABLE "MyTest" (
    "ID" NUMBER(14,0) NOT NULL
    "DELIVERY_PERIOD" INTERVAL DAY (3) TO SECOND (6), 
    CONSTRAINT "MYTEST_PK" PRIMARY KEY ("ID"));

编辑

我已经尝试过

@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

http://docs.oracle.com/cd/B12037_01/java.101/b10983/datamap.htm

我知道将它映射到 Java String 是可行的,但我想得到它是某种日期对象,这样我就不必自己解析它了。

http://objectmix.com/jdbc-java/41781-oracle10g-oracle-sql-interval-type.html

我还想避免使用 oracle 特定的数据类型,例如 oracle.sql.INTERVALS

最佳答案

检查这个 SO answer :

  1. 您可以定义一个 Interval Hibernate UserType
  2. 然后您的实体将简单地使用整数:

    @TypeDef(name="interval", typeClass = Interval.class)
    
    @Type(type = "interval")    
    private Integer interval;
    
  3. Internal UserType 是 Java Integer 到 SQL INTERVAL 适配器。

关于java - 如何在 Java 中表示 Oracle Interval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25236798/

相关文章:

java - CalenderView 不存在 - 试图实现 DatePickerDialog

sql - 在标签中显示具有相同值的行数

sql - 自动调整范围表

java - 检测音频输入的频率 - Java?

java - 是否可以在向导中将完成按钮文本更改为完成?

java - 此嵌套 for 循环的时间复杂度

sql - Magento - 在数据库中更改外观和包

php - 当我无法使用 PDO 且使用 MySQL 时,我应该使用 pear MDB2 还是 pear DB_DataObject?

oracle - 向不同模式的用户授予权限

regex - 如何在oracle中提取字符串的特定部分?