sql >> データベース >  >> RDS >> Oracle

JPA 2.0OracleDATEにnull時間があります

    この種の問題の場合、通常、JDBCドライバーのバージョンと使用している方言を提供すると役立ちます。

    とにかく、私の理解では、実際には次のマッピングが必要です(DATEおよびの場合) 時間):

    @Column(name = "READING_DATE")
    @Temporal(TemporalType.TIMESTAMP)
    private Date readingDate;
    

    そして、あなたが直面している問題は、バージョン9.2でOracleによって導入された狂気に何らかの形で関連しています。 DATEとTIMESTAMPはどうなっていますか? (要するに、彼らはTIMESTAMPを導入しました 列とDATEのマッピングを変更しました SQLタイプ、FAQを読んでください)。それを解決するためのいくつかのオプションがあります(もちろん、TemporalType.TIMESTAMPを使用していると仮定しています マッピング):

    TIMESTAMPを使用する 列タイプTemporalType.TIMESTAMPという意味ではありません ここでは、実際にはDB側の列タイプを意味します)。ただし、ナノ秒の精度が必要ない場合は、これが最善の選択ではありません。

    または、oracle.jdbc.V8Compatible=trueを設定します システムプロパティまたは接続プロパティとしての互換モード:

    <property name="hibernate.connection.oracle.jdbc.V8Compatible">true</property>
    

    はい、このように任意の接続プロパティを設定できます。 Hibernateのドキュメントから:

    または、Oracle JDBC 11.1ドライバを使用します(変更を元に戻すことで問題を「修正」しました)。これはIMOの理想的なソリューションです(V8Compatible ものは非推奨です。

    関連する問題



    1. MySQL | FROM句で更新対象のテーブル'a'を指定することはできません

    2. MySQLファイアアンドフォーゲットINSERT/UPDATE / DELETE-mysql_unbuffered_queryの使用をお勧めしますか?

    3. ociドライバーを使用してOracleでプロシージャを持つphpからパッケージを呼び出す方法は?

    4. SQLServerのバージョン管理に最適なツールは何ですか