我想使用create_date = :my_date在JPA中使用create_date格式为2014-12-02 14:49:15.029my_date格式为2014-12-02的对象。

有什么方法可以使用NamedQuery将时间戳列与JPQL中的Date对象(yyyy-MM-dd格式)进行比较,还是应该使用本机查询?

最佳答案

您可以使用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)

09-11 12:58