【发布时间】:2011-02-20 19:59:36
【问题描述】:
SELECT x FROM SomeClass
WHERE x.dateAtt BETWEEN CURRENT_DATE AND (CURRENT_DATE + 1 MONTH)
在上面的 JPQL 语句中,SomeClass 有一个 memebr dateAttr,它是一个java.util.Date,并有一个@Temporal(javax.persistence.TemporalType.DATE) 注释。
我需要一种方法来处理 (CURRENT_DATE + 1 MONTH) 位 - 在其当前状态下显然是错误的 - 但找不到带有 JPQL 日期函数的文档。
谁能给我指明一个记录 JPQL 日期函数(以及如何执行此特定查询)的文档的方向?
【问题讨论】:
-
这是您想要的某种查询方式吗?或者这是否需要在它自己的实体 bean 上的触发器中?即:
@PrePersist或@PreUpdate? -
@Shervin : 不,查询不需要在
@PrePersist或@PreUpdate中执行。该查询是对 JPA 实体类 (SomeClass) 的命名查询。 -
@Shervin :另外,我知道我可以使用 Java 计算
Date操作,然后使用:parameter将其传递到查询中,但是,我更愿意在JPQL 本身并避免不必要的代码。 -
我明白了,因为这就是我建议的解决方法。我不确定这些功能是 JPA 标准的一部分。您使用的是哪个数据库?
标签: java date documentation jpql