JPA は CURRENT_DATE を関数として定義します。JPQL ステートメントで CURRENT_DATE を使用すると、基になる JPA プロバイダーの Hibernate はこれを解析せず、current_date() のみを受け入れて DBMS から独立させます。
私の考えでは、これはJPAの本質的な機能であるため、CURRENT_DATEはすべての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 ではありません。
これが Hibernate のバグである場合、または他のバグである場合は、ヒントを教えてください。