1

JPA 将 CURRENT_DATE 定义为函数。当我在 JPQL 语句中使用 CURRENT_DATE 时,底层的 JPA-Provider Hibernate 不会解析这个,只接受 current_date() 以独立于 DBMS。

在我看来,CURRENT_DATE 应该在每个 JPA-Provider 中实现,因为这是 JPA 中的一个基本功能。我认为这是 Hibernate 中的一个错误。

例子:

SELECT o FROM Objects o WHERE o.validFrom < CURRENT_DATE

此语句与 MySQL 作为 DBMS 一起使用,但在 MSSQL 中失败,因为 CURRENT_DATE 未被 Hibernate 解析,并且 CURRENT_DATE 被发送到 MSSQL 无法理解的 DBMS。使用 current_date() 一切正常,但这不是普通的 JPQL。

请给我一些提示,如果这是一个休眠错误或其他任何东西。

4

1 回答 1

0

SELECT o FROM Objects o WHERE o.validFrom < ?

并设置初始化为当前日期的 java.util.Date 参数?

于 2012-07-14T18:57:24.957 回答