Tylko dla MySQL , alternatywą dla implementacji niestandardowych typów hibernacji jest dodanie następujących opcji JDBC do adresu URL połączenia JDBC:
useTimezone=true
serverTimezone=UTC
Wymusi to połączenie JDBC ze strefą czasową UTC i poprosi MySQL o wykonanie konwersji ze strefy czasowej JVM. Efektem netto jest to, że możesz zachować lokalną strefę czasową w JVM (np. do drukowania komunikatów dziennika itp.), podczas gdy kolumny DATETIME będą utrwalane jako UTC.
Na przykład:
<bean id="hibernateAnalysisSessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<!-- Connection parameters -->
<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
<prop key="hibernate.connection.url">jdbc:mysql://hostname/databaseName?useTimezone=true&serverTimezone=UTC</prop>
...