在JPA中使用CURRENT_DATE,将Hibernate用作JPA-Provider

时间:2012-07-12 09:43:53

标签: hibernate jpa jpql

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

在我看来,CURRENT_DATE应该在每个JPA-Provider中实现,因为这是JPA中的essentiel函数。我认为这是Hibernate中的一个错误。

示例:

SELECT o FROM Objects o WHERE o.validFrom < CURRENT_DATE

这个语句适用于MySQL作为DBMS,但由于MSSQL没有解析,因为CURRENT_DATE没有被Hibernate解析,而CURRENT_DATE被发送到MSMS将无法理解的DBMS。使用current_date()一切正常,但这不是普通的JPQL。

请给我一些提示,如果这是Hibernate bug或其他任何内容。

1 个答案:

答案 0 :(得分:0)

SELECT o FROM Objects o WHERE o.validFrom&lt; ?

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