我有一个应用程序使用休眠映射来执行SQL Server数据库表中的多个DATETIME列的选择。 hibernate映射使用此DATETIME并将其转换为应用程序中的java.util.Date对象。如何防止hibernate从日期时间中删除时间?
Database table
Start_time | datetime
10-OCT-2014 06:45:00
10-OCT-2014 13:30:00
的问题是,存储在数据库中的日期时间字段的时间被丢弃/截断,并每次约会与00:00的时候,Hibernate是带领他们进入应用程序返回:
休眠列映射:
.
.
<property name="start_dt" type="java.util.Date">
<column name="Start_time"/>
</property>
.
我有它映射到与适当的getter/setter方法和我的查询执行的日期对象是这样的:
Query query = session.createSQLQuery("SELECT Start_time FROM table")
.addScalar("Start_time", Hibernate.Date)
.setResultTransformer(Transformers.aliasToBean(Class.class);
我得到这个:
List<Date> = { '10/10/2014 00:00' , '10/10/2014 00:00' }
我想是这样的:
List<Date> = { '10/10/2014 06:45:00' , '10/10/2014 13:30:00' }
的应用程序在做与Oracle连接类似的东西,它是成功返回的时间。唯一的变量是我的连接是到SQL Server数据库。有谁知道如何防止时间被丢弃?
UPDATE:
根据所选答案bleow因为注释显示不正确此修复程序如下:
Query query = session.createSQLQuery("SELECT Start_time FROM table")
.addScalar("Start_time", Hibernate.TIMESTAMP)
.setResultTransformer(Transformers.aliasToBean(Class.class);
情境代码不是从应用程序中获取,而是通用来解释情况。此外,Oracle进程映射到DATE数据类型的列,并且按预期工作。 – JBMac 2014-10-31 14:13:13