为当前日期创建查询匹配

pus*_*shy 7 jpa spring-data spring-data-jpa

可能重复:
在JPA查询中使用CURRENT_DATE的示例

我试图向我的存储库添加一个查询,以比较存储在数据库中的日期与当前日期.

我的查询是这样的:

@Query("Select c from Customer c where c.terminated != 1 or c.terminationDate > <currentDate>")
public List<Customer> getTerminatedCustomers();
Run Code Online (Sandbox Code Playgroud)

我可以插入<currentDate>什么?

如果一切都失败了,我可以在方法中添加一个参数,并将当前日期传递给查询.但如果可能的话,我宁愿选择更优雅的解决方案.

Oli*_*ohm 25

这个问题实际上是重复的这一个.根据Java Persistence API规范部分4.6.17.2.3,有预定义的函数CURRENT_DATE,CURRENT_TIMECURRENT_TIMESTAMP.所以查询必须定义为

 select c from Customer c where c.terminated != 1 or c.terminationDate > CURRENT_DATE
Run Code Online (Sandbox Code Playgroud)

  • 关于`CURRENT_DATE` 是一个标准的JPA 函数并且它应该在所有JPA 提供程序和RDBMS 中以相同的方式工作这一事实,当在Hibernate 和SQL Server 中使用时它应该是`CURRENT_DATE()`。([证明](/sf/ask/1070889851/)) (2认同)