Joda DateTime 的 JPA 映射支持

JPA mapping support for Joda DateTime

有没有像hibernate @Type一样的javax持久化注解

@LastModifiedDate
@Column(name = "LAST_MODIFIED_DATE")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime lastModifiedDate = DateTime.now();

或者是否有其他方法可以摆脱休眠 @Type 注释。只是删除它会从数据库中抛出二进制太长的异常。

是的,你可以。只需在 persistence.xml 中设置以下 JPA 属性:

<property name="jadira.usertype.autoRegisterUserTypes" value="true"/>

在 JPA 2 中,解决方案是使用自定义 JPA 转换器,它将 jodatime 值转换为 Java.sql.Date 值。这是一篇关于映射新 Java 8 日期时间类型的 gret 博客 post,它们基本上是 Java 8 库中标准化的 jodatime 类型:https://weblogs.java.net/blog/montanajava/archive/2014/06/17/using-java-8-datetime-classes-jpa

对于 JPA 1,不支持开箱即用的转换器,您可以使用特定于您的 JPA 实现的转换器(例如 hibernate),或者求助于使 jodatime 字段成为瞬态的,encode/decode另一个使用 PostLoad 和 Preupdate 侦听器的日期字段