Si no desea escribir el código usted mismo, puede usar la biblioteca de código abierto DbAssist
. Después de aplicar este arreglo, las fechas en la base de datos serán tratadas por JDBC y luego Hibernate como UTC, por lo que ni siquiera tendrá que cambiar sus clases.
Por ejemplo, si está utilizando Anotaciones JPA con Hibernate 4.3.11, agregue la siguiente dependencia Maven:
<dependency>
<groupId>com.montrosesoftware</groupId>
<artifactId>DbAssist-4.3.11</artifactId>
<version>1.0-RELEASE</version>
</dependency>
A continuación, sólo aplicar la revisión:
Para la configuración de Hibernate + resorte de arranque, añadir la anotación @EnableAutoConfiguration
antes de la clase de aplicación.
Para los archivos de HBM, usted tiene que cambiar los archivos de mapeo de entidad que se Date
tipos a la costumbre uno:
<property name="createdAt" type="com.montrosesoftware.dbassist.types.UtcDateType" column="created_at"/>
Si desea obtener más información sobre cómo aplicar la solución para diferentes versiones de Hibernate (o Archivos HBM), consulte the project's github. También puede leer más sobre el problema del cambio de zona horaria en este article.
Pregunta relacionada: http://stackoverflow.com/questions/508019/jpa-hibernate-store-date-in-utc-time-zone –
http://community.jboss.org/wiki/UserTypefornon-defaultTimeZone aparece para ofrecer una solución. –