Solo per MySQL , un'alternativa all'implementazione di tipi di sospensione personalizzati consiste nell'aggiungere le seguenti opzioni JDBC all'URL di connessione JDBC:
useTimezone=true
serverTimezone=UTC
Ciò forzerà la tua connessione JDBC nel fuso orario UTC e chiederà a MySQL di eseguire conversioni dal fuso orario JVM. L'effetto netto è che puoi mantenere un fuso orario locale sulla tua JVM (ad es. per stampare messaggi di registro e così via), mentre le colonne DATETIME verranno mantenute come UTC.
Ad esempio:
<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>
...