2016-02-19 61 views
9

我使用Hibernate,儘量做到以下幾點:休眠@Temporal對Java 8 java.time.Instant

@Temporal(TemporalType.DATE) 
@Column(name = "BIRTHDAY") 
private Instant birthday; 

,但有此異常:

Caused by: org.hibernate.AnnotationException: @Temporal should only be set on a java.util.Date or java.util.Calendar property: 

至於有人建議我嘗試使用

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-java8</artifactId> 
    <version>${hibernate.ver}</version> 
</dependency> 

但具有相同的例外。我應該做一些額外的步驟或如何解決這種情況?

回答

21

不能使用@Temporal與Java 8的時候,如果你想日期時間使用LocalDateTime,如果你只想要日期使用LocalDate沒有@Temporal anotation。

看起來也http://www.thoughts-on-java.org/persist-localdate-localdatetime-jpa/

+0

謝謝actualy我已經找到解決方案通過你的鏈接在文章的第二部分描述(含轉換器),並用它 - 它工作得很好! –

+2

@DmitriiAdonin,你需要的唯一的東西是刪除註釋並將該字段標記爲基本列。工作正常,無需任何轉換器。我不是直接從答案中找到答案,所以HAYMbl4請你編輯你的答案? –