决定更新到Hibernate 5以删除现有的Date to LocalDateTime转换。我从Maven安装了hibernate-java8工件。然后我将我的休眠实体日期时间替换为
@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;
抛出此异常
org.hibernate.AnnotationException:@Temporal只应在java.util.Date或java.util.Calendar属性上设置
如果删除@Temporal,则异常变为
ClassCastException:java.util.Date无法强制转换为java.time.LocalDateTime
我认为Java 8 + Hibernate 5支持LocalDateTime?请指教。
答案 0 :(得分:3)
只需删除该行:
@Temporal (TemporalType.TIMESTAMP)
在每种情况下,你定义它。
Hibernate 5读取LocalDateTime作为类型,并正确地将数据作为时间戳插入数据库。目前没有太多信息,因为他们发布的产品和文档将随之而来。
答案 1 :(得分:2)
@Column(name = "updated", columnDefinition="DATETIME")
private LocalDateTime updated;
@Column(name = "created", columnDefinition="TIMESTAMP")
private LocalDateTime created;