休眠 5 的 joda 时间兼容性问题

Posted

技术标签:

【中文标题】休眠 5 的 joda 时间兼容性问题【英文标题】:jodatime compatiblility issue with hibernate 5 【发布时间】:2018-10-21 09:24:08 【问题描述】:

我无法将 jodatime 与 hibernate 5 和 java 8 一起使用。

我正在将一个大型应用程序从 spring4/hibernate4/java7 迁移到 spring5/hibernate5/java8。

春季 5.0.5.RELEASE 休眠 5.2.16.Final

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.9.9</version>
</dependency>
<dependency>
    <groupId>org.jadira.usertype</groupId>
    <artifactId>usertype.jodatime</artifactId>
    <version>2.0.1</version>
</dependency>

实体 Bean

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDate")
@Column(name="START_DATE")
private org.joda.time.LocalDate startDate;

由于现有代码,我无法使用 java8 时间库。我已经尝试过,但它最终带来了我可以管理的巨大变化。

有人有这方面的经验吗?

这是我在启动时遇到的错误。

java.lang.AbstractMethodError
at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:119)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:82)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2854)

【问题讨论】:

找到解决此错误的方法了吗? 【参考方案1】:

您的 org.jadira.usertype 版本对于这个版本的 Hibernate 来说太旧了。您至少需要 5.0.0.GA 或 6.0.0.1.GA。

【讨论】:

以上是关于休眠 5 的 joda 时间兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章

对 Java 9 的休眠支持

电脑进入休眠黑屏之后无法唤醒关机重启也没用?

Hibernate 3 与 Java 1.6 兼容吗?

在 Windows 中检查版本兼容性而不在命令提示符或任何命令行工具中编写任何命令?

OSGi + 休眠

休眠 - 两个日期之间的差异