sql >> Base de Datos >  >> RDS >> Mysql

Marca de tiempo forzada de Hibernate para persistir/cargar como UTC

Solo para MySQL , una alternativa a la implementación de tipos personalizados de Hibernate es agregar las siguientes opciones de JDBC a su URL de conexión de JDBC:

useTimezone=true
serverTimezone=UTC

Esto forzará su conexión JDBC a la zona horaria UTC y le pedirá a MySQL que realice conversiones desde la zona horaria JVM. El efecto neto es que puede mantener una zona horaria local en su JVM (por ejemplo, para imprimir mensajes de registro, etc.), mientras que las columnas DATETIME permanecerán como UTC.

Por ejemplo:

<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&amp;serverTimezone=UTC</prop>
            ...