JPA / Hibernate,Query timestamp列忽略条件的时间部分

时间:2014-07-30 08:18:51

标签: sql oracle hibernate date jpa

我正在使用JPA / Hibernate组合将实体存储到oracle数据库。

该表包含一个TIMESTAMP(6)列,用于存储具有时间和毫秒的日期值。

存储和加载实体按预期工作。正确处理实体中java.util.Date字段的“time”部分。

但是当我使用本机查询和where time < :startTime条件查询表时,startTime只包含日期'30 -Jul-14'。 “时间”部分被截断。

Hibernates查询看起来像:

select documentta0_.id as id1_14_, documentta0_.id_document as id5_14_, documentta0_.host as host2_14_, documentta0_.task as task3_14_, documentta0_.time as time4_14_ 
from document_task documentta0_ 
where documentta0_.task='preview' 
and documentta0_.host='my.host.uk' 
and documentta0_.time>'30-Jul-14' 
order by documentta0_.time ASC

orm.xml文件包含以下列定义:

<basic name="time" optional="false">
     <column name="time"/>
     <temporal>TIMESTAMP</temporal>
</basic>

如何查询日期和时间?

1 个答案:

答案 0 :(得分:0)

也许只是格式问题。如果您使用的是p6spy之类的东西,请尝试取消注释并将属性设置为

databaseDialectDateFormat=dd-MM-yy HH:mm:ss.SSSSSS