如何在JPQL中将时间戳与没有时间的日期进行比较?

时间:2014-12-02 14:30:25

标签: jpa jboss jpql

我希望获得create_date = :my_date的对象,其中create_date格式为2014-12-02 14:49:15.029my_date格式为2014-12-02格式。

有没有办法在JPQL中使用NamedQuery比较timestamp列和Date对象(yyyy-MM-dd格式),还是应该使用本机查询?

2 个答案:

答案 0 :(得分:1)

您可以使用NamedQuery,您需要正确操作@ Temporal注释和TemporalType枚举。

因此,如果您的对象属性是没有时间部分的日期,您可以将其注释为@Temporal(TemporalType.DATE),进一步在为您的命名查询提供参数时,您将使用两个可用签名中的一个

setParameter(String name, java.util.Date value, TemporalType temporalType)
setParameter(String name, java.util.Calendar value, TemporalType temporalType)

因此您的查询将包含以下内容:

query.setParameter("my_date", myDate, TemporalType.DATE)

答案 1 :(得分:0)

如果您使用的是jpql,请尝试

使用日期(时间戳列)

例如:@Query(从Testentity中选择te,其中date(te.createdTimestamp)> = CURRENT_DATE)      公共列表getTestDate()