2015-11-23 10 views
9

Hibernate 5に更新して、LocalDateTime変換から既存のDateを削除することにしました。私はMavenからhibernate-java8アーティファクトをインストールしました。それから私は、この例外は Java 8 + Hibernate 5 MySQL TIMESTAMP/DATETIMEからLocalDateTimeへのマッピング

org.hibernate.AnnotationException

を投げた

@Column (name = "mis_a_jour_au", nullable = false) 
@Temporal (TemporalType.TIMESTAMP) 
private LocalDateTime misAJourAu; 

@Column (name = "envoi_au", nullable = false) 
@Temporal (TemporalType.TIMESTAMP) 
private LocalDateTime envoiAu; 

に私の休止状態のエンティティ日時を置き換え:@Temporalはjava.util.Dateまたはjava.utilの上で設定する必要があります。カレンダープロパティ

私は@Temporalを削除する場合は、例外が

CLASなりsCastException:java.util.Dateはjava.time.LocalDateTimeにキャストできません

Java 8 + Hibernate 5はLocalDateTimeをサポートしていると思いますか?お知らせ下さい。

+0

前回チェックしたときは、日付とカレンダーのみがサポートされていました。 https://docs.oracle.com/javaee/6/api/javax/persistence/Temporal.html – bmarkham

+2

こんにちは、私はJava 8を使用していますが、これも読んでいます:http://stackoverflow.com/a/32680455 LocalDateTimeはhibernate-java8成果物でサポートされていると言います。私はかなり休止状態がどのようにコンバータから離れてどのように処理するのか分かりませんので、私はいくつかの助けが必要です –

+0

おっと、申し訳ありません、その記事は古い記事でした気づかなかった – bmarkham

答えて

3

それぞれを定義した場合は、 @Temporal (TemporalType.TIMESTAMP) という行を削除してください。

Hibernate 5は、タイプとしてLocalDateTimeを読み取り、データをタイムスタンプとしてデータベースに正しく挿入します。現時点では、製品をリリースしたために情報があまりなく、ドキュメンテーションが続きます。

0
@Column(name = "updated", columnDefinition="DATETIME") 
private LocalDateTime updated; 

@Column(name = "created", columnDefinition="TIMESTAMP") 
private LocalDateTime created; 
関連する問題