Hibernate: Определение отображения типов для всего проекта - PullRequest
4 голосов
/ 18 января 2012

Я использую Hibernate & Joda Time при поддержке библиотеки UserType.

Я могу сохранить свои даты, используя следующий подход:

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

Однако яМне интересно, возможно ли определить это отображение где-то один раз, а не на каждом экземпляре типа DateTime.

При переходе из Hibernate 3.4 -> 4.0 пришлось переключаться из JodaTime Hibernate в UserTypeЯ не хочу, чтобы объявления типа были засорены в модели предметной области.

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

С выпуском 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'.

Больше информации здесь http://blog.jadira.co.uk/blog/2012/1/19/release-jadira-usertype-300cr1-with-support-for-joda-money-0.html

0 голосов
/ 18 января 2012

Вы можете реализовать BasicType и зарегистрировать его при создании SessionFactory.Справочное руководство по гибернации объясняет это в разделе 6.4.1 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...