一尘不染

Hibernate4和joda时间

hibernate

他们幸福地结婚了吗?

我正在使用最新版本的hibernate(4)和1.3版的joda-time hibernate支持,我也相信这是当前的最新版本。

使用批注时,一切似乎都正常(按预期方式创建了日期列):

@Column
@Type(type="org.joda.time.contrib.hibernate.PersistentLocalDate")
private LocalDate myDate;

一起使用这些版本是否存在任何已知问题?

Update Well证明已创建列,但无法填充任何数据:

处理程序处理失败;
嵌套的异常是java.lang.AbstractMethodError:org.joda.time.contrib.hibernate.PersistentLocalDateTime.nullSafeSet

它们不兼容,我应该使用 usertype请参阅下面的答案。


阅读 268

收藏
2020-06-20

共1个答案

一尘不染

很少有文档说明,这可能有助于我写下集成所需的步骤。确保您的库是最新的。

您需要:[假设您已经有hibernate4]

最新版本的乔达时间

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>2.0</version>
</dependency>

和用户类型库

<dependency>
    <groupId>org.jadira.usertype</groupId>
    <artifactId>usertype.core</artifactId>
    <version>3.0.0.CR1</version>
</dependency>

然后在实体类中使用以下内容(不必是LocalDateTime,可以是任何可用的持久化类):

import org.joda.time.LocalDateTime;

对于列定义:

@Column(name="updated", nullable = false)
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
private LocalDateTime updated;
2020-06-20