使用Oracle Date with Hibernate时的日期/时间的Java类型

Mar*_*eon 10 java oracle orm datetime hibernate

我们有一个Oracle Date列.首先在我们使用的Java/Hibernate类中java.sql.Date.这有效,但是当我们保存时它似乎没有在数据库中存储任何时间信息所以我将Java数据类型更改为Timestamp.现在我们得到这个错误:

springframework.beans.factory.BeanCreationException:在类路径资源[margin-service-domain -config.xml]中定义名称为'org.springframework.dao.an notation.PersistenceExceptionTranslationPostProcessor#0'的bean创建错误:bean的初始化失败; 嵌套异常是org.springframework.beans.factory.BeanCreatio nException:创建类路径资源[m-service-doma in-config.xml]中定义的名为'sessionFactory'的bean时出错:init方法的调用失败; 嵌套异常是org.hibernate.HibernateException:列类型错误:CREATE_TS,expected:timestamp

有关如何Date在保留时间部分的同时映射Oracle的任何想法?


更新:如果我使用Oracle Timestamp数据类型,我可以让它工作,但我不希望理想的精确度.只想要基本的Oracle Date.

Bri*_*ing 8

我总是将java.util.Date与Oracle日期一起使用,它处理日期和时间就好了.


Pas*_*ent 7

不是直接的答案,但我使用Oracle TIMESTAMP类型:

  • TIMESTAMP(fractional_seconds_ precision)日期的年,月和日值,以及小时,分钟和秒的时间值,其中 fractional_seconds_precision 可选地指定SECOND 日期时间字段的小数部分中的位数, 并且可以是范围0到9.默认值为6.例如,您指定 TIMESTAMP为文字,如下所示:

    TIMESTAMP'1997-01-31 09:26:50.124'
    
    Run Code Online (Sandbox Code Playgroud)

与期望的fractional_second_precision.