JPQL在@Query注释中检查大于今天的日期

时间:2015-04-02 17:26:01

标签: java spring spring-boot spring-data jpql

我想使用JPQL检查天气validTill日期是否大于today。我知道我可以通过以下方式实现这一目标。

Query q = em.createQuery("select e from MyEntity e where e.validTill > :today ");

并传递:today参数。 但这不是我想要的。我想在Spring的@Query中使用CrudRepository注释执行此操作。

这是我在CrudRepository

中的代码段
@Query("SELECT e FROM MyEntity e WHERE e.validFrom < TODAY")
Iterable<MyEntity> findAllValid();

我不知道应该在TODAY地点放置什么来获取今天的日期。请帮帮我。

1 个答案:

答案 0 :(得分:16)

我找到了。就像这样..

@Query("SELECT e FROM MyEntity e WHERE e.validFrom < CURRENT_DATE")
Iterable<MyEntity> findAllValid();

CURRENT_DATE - 被评估为当前日期(java.sql.Date实例)。

CURRENT_TIME - 被评估为当前时间(java.sql.Time实例)。

CURRENT_TIMESTAMP - 被评估为当前时间戳,即日期和时间 (java.sql.Timestamp实例)。