【发布时间】:2016-02-25 01:14:07
【问题描述】:
决定更新到 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?请指教。
【问题讨论】:
-
我上次检查时,它只支持日期和日历。 docs.oracle.com/javaee/6/api/javax/persistence/Temporal.html
-
您好,我正在使用 Java 8,并且我读到了这个:stackoverflow.com/a/32680455,它说在 hibernate-java8 工件中支持 LocalDateTime。我不太明白 hibernate 如何处理转换器以外的类型,所以我需要一些帮助
-
糟糕,抱歉,没注意到这篇文章是旧文章
-
很遗憾,我没有为你解答。但似乎 JPA 不支持 LocalDateTime。这是一篇(最近的)关于它以及如何解决它的文章。我希望这有助于thoughts-on-java.org/persist-localdate-localdatetime-jpa
-
我目前正在使用此解决方法,但我想删除它,因为我看到了 Hibernate 5 中的 LocalDateTime 支持。无论如何,谢谢!
标签: java mysql hibernate hibernate-5.x