我想使用create_date = :my_date
在JPA中使用create_date
格式为2014-12-02 14:49:15.029
且my_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)