1

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 のバグである場合、または他のバグである場合は、ヒントを教えてください。

4

1 に答える 1

0

SELECToFROMオブジェクトoWHEREo.validFrom <?

そして、現在の日付に初期化されたjava.util.Dateパラメータを設定しますか?

于 2012-07-14T18:57:24.957 に答える