2017-10-27 4 views
0

私は、SQL Serverデータベースに基づいて新しいアプリケーションでJava 8の日付&時間APIを利用しようとしています。しかし、データベースに作成されたコラム(私の場合はHibernateはSQL ServerのVARBINARYとしてJava 8のDateTimeLocalを保持します

@Entity 
@Table(name="...", schema="...") 
public class DepositDetails { 

    // ... id, other fields ... 

    private LocalDateTime createdOn; 

    // ... other fields, getters/setters ... 

} 

:HibernateはこのAPIと箱から出したJava 8をサポートしてような単純なアプローチを示唆5.2+インターネット上のすべてのリソース状態hibernate-jpamodelgenを使用)は、DATETIME/DATETIME2ではなくVARBINARY(255)として作成されます。
データ型を明示的に指定しようとしましたが(columnDefinition = "DATETIME") - この場合、列の型は指定どおりに正しく作成されますが、テーブル内のデータを保持しようとすると、varbinaryデータ

  • SQL ServerはMicrosoft SQL Serverの開発者である

    • 休止5.2.12.Finalです:

      問題に関連することができるアプリケーションのセットアップに関するいくつかの詳細は...日時に変換することはできませんエディション(64ビット)14.0.900.75(Dockerコンテナ内)

    • MSSQL JDBCドライバは、Hibernate 5.2は春ブーツでデフォルトで使用されるHibernateは5.0、で依存関係ツリーに代えたこと、@Alanヘイによって示唆されているように、6.2.2.jre8
  • +0

    これが実際には動作するはずであるので、ランタイムクラスパス上で実際に5.2+であることを検証します。 http://in.relation.to/2016/06/01/hibernate-orm-520-final-release/ –

    答えて

    0

    問題でした。
    また、5.2.12.Finalに設定された自分の子pom.xmlにプロパティがありましたが、親レベルでは同じプロパティが5.0.xに(再びSpring Bootによって)設定されていました。このようにして、子モジュールから5.2の依存関係を持つはずの親アプリケーションは、実際にSpringブートから古いバージョンを取得していました。
    解決方法は、親のpom.xmlにプロパティを設定することでした。

    関連する問題