UserType/Hibernate/JodaTime – где установить глобальные свойства UserType?

Я использую класс org.jadira.usertype.dateandtime.joda.PersistentDateTime из UserType 3.0.0.RC1 для сопоставления JodaTime DateTime с Hibernate. В Javadocs для класса упоминается, что существуют Свойства 'databaseZone' и 'jvmZone', которые я хотел бы установить, но я не могу найти в документации UserType ничего, что указывало бы, как это сделать. Я нашел эту ветку, которая, по-видимому, подразумевает, что они устанавливаются с помощью XML, аналогичного к следующему:

<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
<prop key="jadira.usertype.databaseZone">jvm</prop>

Я попытался добавить их в свою конфигурацию гибернации, но это просто выдало ошибку. Кто-нибудь знает, где эта конфигурация должна идти? Спасибо.


person Robert Johnson    schedule 10.05.2012    source источник


Ответы (2)


Эти настройки действительно могут быть помещены в конфигурацию гибернации, как показано ниже:

<session-factory>

    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/SOME_DATABASE</property>
    <property name="connection.username">root</property>
    <property name="connection.password">password</property>

    ...

    <property name="jadira.usertype.databaseZone">UTC</property>
    <property name="jadira.usertype.javaZone">UTC</property>

</session-factory>

Оказывается, я по ошибке ссылался на старую версию библиотеки UserType, которая не поддерживала эти свойства. О!

person Robert Johnson    schedule 20.11.2012

Эти настройки должны войти в ваш persistence.xml.

Пример показан здесь

person Marty Pitt    schedule 06.09.2012
comment
Спасибо, но, к сожалению, у меня нет файла persistence.xml; в проекте, над которым я работаю, у нас есть все эти свойства, настроенные в bean-компоненте «session-factory», управляемом Spring. Хотя приятно знать, что альтернатива есть. - person Robert Johnson; 20.11.2012