j'ai une entité persistante avec un champ LocalTime
mis en correspondance avec une colonne time without time zone
dans une table de postgre, je renseigner ce champ dans mon application comme ceci:jodatime et veille prolongée des changements de soutien de fuseau horaire
int hour = 10
int minutes = 12
MyEntity e = new MyEntity()
e.setTime(new LocalTime(hour, minutes));
alors je persiste l'entité sur la base de données en utilisant hibernate, plus tard dans l'application je récupère l'entité et affiche le champ de temps, il montre correctement 10:12
mais quand je vois la valeur sur la table (en utilisant pg-admin), il montre: 04:12
quand il devrait être 10:12
, le fuseau horaire dans mon jvm et dans mon sistem est CST (qui est UTC-6) il me semble que quelque part soit dans hibernate ou jodatime mon champ de temps est commencer converti à mon fuseau horaire à la fois lors de l'insertion à la base de données et lors de la récupération des valeurs, im i? est-il un moyen d'empêcher cette behaivor ?, im en utilisant jre 1.6.0_22, mise en veille prolongée 3, Joda temps 1.5.1 et Joda-temps mise en veille prolongée 1.2
modifier: oublié de mentionner que le champ est mis en correspondance en veille prolongée avec:
type="org.joda.time.contrib.hibernate.PersistentLocalTimeAsTime"
yay, jon au pigeon d'argile à la rescousse =), pour ne citer que cette classe dans le usertype pour le projet de mise en veille prolongée: http://usertype.sourceforge.net/, en utilisant org.jadira.usertype.dateandtime.joda. PersistentLocalTime comme type dans le fichier de mappage résout efficacement ce problème. – Harima555