我们有一个Oracle日期列。首先,我们在Java / Hibernate类中使用java.sql.Date。这可行,但是保存时似乎没有在数据库中存储任何时间信息,因此我将Java数据类型更改为Timestamp。现在我们得到这个错误:
java.sql.Date
springframework.beans.factory.BeanCreationException:在类路径资源[margin-service- domain -config.xml]中定义的名称为’org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0’的bean创建时出错:bean初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreatio nException:创建在类路径资源[m-service-doma in- config.xml]中定义的名称为’sessionFactory’的bean时出错:调用init方法失败;嵌套的异常是org.hibernate.HibernateException:错误的列类型:CREATE_TS,预期的:时间戳记
关于如何Date在保留时间部分的同时映射Oracle的任何想法?
Date
更新:如果使用Oracle Timestamp数据类型,我可以使它正常工作,但我不希望达到理想的精度水平。只需要基本的Oracle Date。
Timestamp
不是直接的答案,但我将使用Oracle TIMESTAMP类型:
TIMESTAMP(fractional_seconds_ precision)日期的 年,月和日值以及时间的小时,分钟和秒值,其中 fractional_seconds_precision 可选地指定SECOND datetime字段的小数部分中的位数, 并且可以是范围从0到9。默认值为6。例如,您TIMESTAMP按如下方式指定 文字: TIMESTAMP'1997-01-31 09:26:50.124'
TIMESTAMP(fractional_seconds_ precision)日期的 年,月和日值以及时间的小时,分钟和秒值,其中 fractional_seconds_precision 可选地指定SECOND datetime字段的小数部分中的位数, 并且可以是范围从0到9。默认值为6。例如,您TIMESTAMP按如下方式指定 文字:
fractional_seconds_precision
SECOND
TIMESTAMP
TIMESTAMP'1997-01-31 09:26:50.124'
与期望的fractional_second_precision。
fractional_second_precision