10

决定更新到 Hibernate 5 以删除现有的 Date 到 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?请指教。

4

2 回答 2

4

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

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

于 2015-12-08T22:52:36.333 回答
2
@Column(name = "updated", columnDefinition="DATETIME")
private LocalDateTime updated;

@Column(name = "created", columnDefinition="TIMESTAMP")
private LocalDateTime created;
于 2016-11-27T16:59:33.760 回答