繁体   English   中英

Java 8 + Hibernate 5 MySQL TIMESTAMP / DATETIME到LocalDateTime Mapping

[英]Java 8 + Hibernate 5 MySQL TIMESTAMP/DATETIME to LocalDateTime Mapping

决定更新到Hibernate 5以删除现有的Date to LocalDateTime转换。 我从Maven安装了hibernate-java8工件。 然后我将我的hibernate实体日期时间替换为

@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? 请指教。

只需删除行: @Temporal (TemporalType.TIMESTAMP)在每种情况下定义它。

Hibernate 5读取LocalDateTime作为类型,并正确地将数据作为时间戳插入数据库。 由于他们发布了产品和文档,因此目前没有太多信息。

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

@Column(name = "created", columnDefinition="TIMESTAMP")
private LocalDateTime created;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM