Java JPA查询中的JPA 2.0日期比较

Java JPA查询中的JPA 2.0日期比较,java,jpa-2.0,Java,Jpa 2.0,我正试图执行以下查询,但抛出错误 SELECT t from Table t where t.status = :status and t.ndate > (t.ndate - 12/24) AND t.ndate < (t.ndate + 12/24) 我们还有其他方法吗?(t.ndate-12/24)返回一个数值,它不是日期,并且不能与java.util.date进行比较。我假设您想查询t.ndate是否在两个固定日期之间。 然后,您可以在Java中计算所需的日期,并在查询中使

我正试图执行以下查询,但抛出错误

SELECT t from Table t where t.status = :status and t.ndate > (t.ndate - 12/24) AND t.ndate < (t.ndate + 12/24)

我们还有其他方法吗?

(t.ndate-12/24)
返回一个数值,它不是日期,并且不能与
java.util.date

进行比较。我假设您想查询
t.ndate
是否在两个固定日期之间。 然后,您可以在Java中计算所需的日期,并在查询中使用这些计算出的日期值(在示例中为
:start
:end
)。通过这种方式,您可以使用普通比较,并避免引入对本机查询语言的依赖关系。 在这种情况下,您最好使用与之间的比较,因为它更具可读性:

t.ndate BETWEEN :start AND :end
另见,尤其是
.

使用带有函数
Date\u add的本机查询
r您必须用Java进行计算考虑使用
FORMAT
将日期格式化为“ddmmyyyy”作为ex
t.ndate BETWEEN :start AND :end