【发布时间】:2010-12-02 19:00:33
【问题描述】:
我想从日期 = TODAY 的表中进行选择,在 mysql 上将是 where date > CURDATE(),我如何在 JPA 命名查询上执行此操作?
【问题讨论】:
我想从日期 = TODAY 的表中进行选择,在 mysql 上将是 where date > CURDATE(),我如何在 JPA 命名查询上执行此操作?
【问题讨论】:
这取决于您的 JPA 提供商。比如Hibernate就支持current_date函数:
from MyEntity where myDateProperty > current_date
【讨论】:
来自spec:
4.6.16.3 日期时间函数
functions_returning_datetime:= CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP日期时间函数返回 当前日期、时间的值和 数据库服务器上的时间戳。
【讨论】:
CURRENT_DATE 是一个标准的 JPA 函数并且它应该在所有 JPA 提供程序和 RDBMS 中以相同的方式工作这一事实,它会在使用 SQL Server 的 Hibernate 中导致错误,应该用作 CURRENT_DATE()反而。所以@chssply76 的回答也是正确的:“这取决于你的 JPA 提供商。”
extract( DAY from current_date )