我希望获得create_date = :my_date
的对象,其中create_date
格式为2014-12-02 14:49:15.029
,my_date
格式为2014-12-02
格式。
有没有办法在JPQL中使用NamedQuery
比较timestamp列和Date对象(yyyy-MM-dd格式),还是应该使用本机查询?
答案 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()