/ / jadira fuseau horaire type - printemps, veille prolongée, jodatime

fuseau horaire jadira usertype - printemps, hibernation, jodatime

J'utilise jadira usertype + joda time dans monprojet. J'utilise Hibernate + spring. Mon pojo pojo utilise des annotations printanières telles que @CreatedDate et org.springframework.data.jpa.domain.support.AuditingEntityListener qui définissent automatiquement la date de création sur le bean lors de son enregistrement. Je suis dans le fuseau horaire Europe / Rome, mais malheureusement dans la base de données, la date est stockée au format UTC. Lorsque j'affiche la valeur sur le client (javafx), la date est affichée correctement dans le fuseau horaire.

Comment puis-je stocker des données dans la base de données dans le fuseau horaire correct?

Merci beaucoup.

Réponses:

5 pour la réponse № 1

Vous devez définir la propriété "jadira.usertype.databaseZone".

Définissez-le sur un fuseau horaire explicite ou utilisez "jvm" pour utiliser le fuseau horaire par défaut de la machine virtuelle.

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:jpaProperties-ref="jpaProps" />

<util:properties id="jpaProps">
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
<!-- defaults to storing UTC dates in DB otherwise -->
<prop key="jadira.usertype.databaseZone">jvm</prop>
<prop key="jadira.usertype.javaZone">jvm</prop>
</util:properties>