我有映射到一个postgre表time without time zone
列LocalTime
场持久的实体,我填充这个领域我的应用程序是这样的:jodatime和休眠支持更改时区
int hour = 10
int minutes = 12
MyEntity e = new MyEntity()
e.setTime(new LocalTime(hour, minutes));
然后我坚持实体在数据库上使用休眠,稍后在应用程序中检索实体并显示时间字段,它正确显示10:12
,但是当我看到表上的值(使用pg-admin)时,它显示:04:12
它应该是10:12
,在我的jvm和我的系统中的时区是CST(UTC-6),在我看来,冬眠或乔达泰时间的某个地方是我的时间字段开始转换为我的时区,当插入到数据库和检索值时,我即时更正?是有防止使用JRE 1.6.0_22此behaivor ?, IM的任何方式,冬眠3,约达时间1.5.1和乔达 - 时间 - 冬眠1.2
编辑: 忘记提到该字段被映射在休眠:
type="org.joda.time.contrib.hibernate.PersistentLocalTimeAsTime"
yay,jon向救援团队求助=),只需要提一下在Hibernate项目的usertype中使用org.jadira.usertype.dateandtime.joda即可。作为映射文件中的类型,PersistentLocalTime可以有效地解决此问题。 – Harima555 2010-12-11 22:05:55