2012-01-17 81 views
4

我使用Hibernate & Joda時間,支持UserType庫。Hibernate:定義項目範圍內的類型映射

我可以使用下面的方法來堅持我的日期:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentDateTime") 
@Column 
private DateTime startDate; 

不過,我想知道,如果有可能,一旦某處定義這種映射,而不是在DateTime類型的每個實例。

從Hibernate 3.4 - > 4.0遷移時不得不從JodaTime Hibernate換到UserType,我不願意在整個域模型中散佈類型聲明。

回答

3

隨着用戶類型的3.0.0.CR1版本,則可以利用以下類型的自動註冊的:

PersistentBigMoneyAmount 
PersistentMoneyAmount 
PersistentCurrency 
PersistentCurrencyUnit 
PersistentDateTime 
PersistentDurationAsString 
PersistentInstantAsTimestamp 
PersistentLocalDate 
PersistentLocalTime 
PersistentMonthDayAsString 
PersistentPeriodAsString 
PersistentTimeOfDay 
PersistentYearMonthDay 
PersistentYears 

要啓用此功能,您需要設置JPA或休眠財產「jadira.usertype .autoRegisterUserTypes'爲'true'。

升級usertype.joda時Maven工件現在稱爲'usertype.core'。

更多的信息在這裏http://blog.jadira.co.uk/blog/2012/1/19/release-jadira-usertype-300cr1-with-support-for-joda-money-0.html

0

您可以實施BasicType,並在構建SessionFactory時進行註冊。 hibernate參考手冊在section 6.4.1中對此進行了解釋。