我正在使用Hibernate& Joda Time,得到UserType库的支持。
我可以使用以下方法保留日期:
@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime")
@Column
private DateTime startDate;
但是,我想知道是否可以在某处定义此映射,而不是在DateTime
类型的每个实例上定义。
从Hibernate 3.4迁移时,必须从JodaTime Hibernate换出到UserType - > 4.0,我不愿意在整个域模型中散布类型声明。
答案 0 :(得分:3)
使用Usertype的3.0.0.CR1版本,您可以利用以下类型的自动注册:
PersistentBigMoneyAmount
PersistentMoneyAmount
PersistentCurrency
PersistentCurrencyUnit
PersistentDateTime
PersistentDurationAsString
PersistentInstantAsTimestamp
PersistentLocalDate
PersistentLocalTime
PersistentMonthDayAsString
PersistentPeriodAsString
PersistentTimeOfDay
PersistentYearMonthDay
PersistentYears
要启用此功能,您需要将JPA或Hibernate属性'jadira.usertype.autoRegisterUserTypes'设置为'true'。
升级usertype.joda时,Maven工件现在称为“usertype.core”。
答案 1 :(得分:0)
您可以实施BasicType
,并在构建SessionFactory
时注册它。 hibernate参考手册在section 6.4.1中解释了这一点。