1

timestamp(0) without time zone在 Postgres 中有一个专栏,想通过 Hibernate 4.2.2 将其映射到 Joda-Time Instant。Joda-Time 站点引用了Hibernate 4.x 版的Jadira UserType 库。但是没有文档。

有人可以给我一个与 Hibernate 4.x 一起使用的时间戳实体属性的示例,最好与 JPA 兼容吗?是否有可能定义一次映射,这样我就不需要用很长的类名注释每个时间戳属性?

我不关心时区。我只将 unix 时间戳保存到数据库中。时区由视图层处理。

4

1 回答 1

3

Thomas,作为起点,请访问文档中的此页面:http: //jadira.sourceforge.net/usertype-userguide.html

这是那里的例子:

@Column @Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime") private LocalDateTime dateTime;

实际上,这几乎就是您需要做的所有事情。

您可能需要 PersistentTimestamp 类(有关类的完整列表,请参阅位于http://jadira.sourceforge.net/apidocs/index.html的 Javadoc)。Joda Time 可用的持久类是:

PersistentDateMidnight
PersistentDateMidnightAsString
PersistentDateTime
PersistentDateTimeAndZone
PersistentDateTimeAndZoneWithOffset
PersistentDateTimeAsString
PersistentDateTimeWithZone
PersistentDateTimeZoneAsString
PersistentDateTimeZoneWithOffsetAsString
PersistentDurationAsString
PersistentInstantAsMillisLong
PersistentInstantAsNanosBigInteger
PersistentInstantAsString
PersistentInstantAsTimestamp
PersistentInterval
PersistentLocalDate
PersistentLocalDateAsString
PersistentLocalDateTime
PersistentLocalDateTimeAsString
PersistentLocalTime
PersistentLocalTimeAsMillisInteger
PersistentLocalTimeAsNanosLong
PersistentLocalTimeAsString
PersistentLocalTimeAsTimestamp
PersistentMinutes
PersistentMonthDayAsString
PersistentPeriodAsString
PersistentTimeOfDay
PersistentTimeOfDayAsMillisInteger
PersistentTimeOfDayAsNanosLong
PersistentTimeOfDayAsString
PersistentTimeOfDayAsTimestamp
PersistentYearMonthAsString
PersistentYearMonthDay
PersistentYearMonthDayAsString
PersistentYear

如果您对时区或 PersistentLocalDateTime 不感兴趣,我认为您想要 PersistentInstantAsTimestamp。

如果有任何问题,您可以在此处跟进或通过http://jadira.atlassian.net/进行报告,我将尽我所能提供帮助。

免责声明:我是 Jadira Usertype 的维护者。

于 2013-08-15T16:15:28.720 回答