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