【问题标题】:JPA/Hibernate, Query timestamp column ignores time part of criteriaJPA/Hibernate,查询时间戳列忽略条件的时间部分
【发布时间】:2014-09-21 19:18:28
【问题描述】:

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

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

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

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

休眠查询如下所示:

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>

如何查询日期和时间?

【问题讨论】:

    标签: sql oracle hibernate date jpa


    【解决方案1】:

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

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

    【讨论】:

    • 是我的错,我更改了设置,现在输出正确
    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    相关资源
    最近更新 更多