имам постоянен обект с поле LocalTime
, съпоставено с time without time zone
колона в таблица на postgre, попълвам това поле в моето приложение по следния начин:
int hour = 10
int minutes = 12
MyEntity e = new MyEntity()
e.setTime(new LocalTime(hour, minutes) );
след това запазвам обекта в db с помощта на хибернация, по-късно в приложението извличам обекта и показвам полето за време, то правилно показва 10:12
, но когато видя стойността в таблицата (използвайки pg-admin), тя показва: 04:12
когато трябва да е 10:12
, часовата зона в моя jvm и в моята система е CST (което е UTC-6) изглежда ми, че някъде в hibernate или jodatime моето часово поле започва да се преобразува в моята часова зона както при вмъкване в db, така и при извличане на стойностите, правилно ли съм? има ли някакъв начин за предотвратяване на това поведение?, използвам jre 1.6.0_22, hibernate 3, joda-time 1.5.1 и joda-time-hibernate 1.2
редактиране: забравих да спомена, че полето е картографирано в хибернация с:
type="org.joda.time.contrib.hibernate.PersistentLocalTimeAsTime"