如何指示Hibernate使用本地时区以外的时区将Java日期映射到Oracle DATE列?

时间:2010-11-03 08:04:52

标签: java oracle hibernate date timezone

如何指示Hibernate使用本地时区以外的时区将Java日期映射到Oracle DATE列之间?

2 个答案:

答案 0 :(得分:1)

我不确定,但我认为您必须使用OracleConnection.setSessionTimeZone(String regionName)方法来设置会话时区。

要在Hibernate处理它之前在OracleConnection上执行此操作,最简洁的方法是提供和使用o.h.c.ConnectionProvider的自定义实现。

请参阅此related question

答案 1 :(得分:0)

Hibernate不允许通过注释或任何其他方式指定时区。如果使用日历而不是日期,则可以使用HIbernate属性AccessType实现变通方法并自行实现映射。更高级的解决方案是实现自定义UserType以映射日期或日历。这篇博客文章中解释了这两种解决方案:http://dev-metal.blogspot.com/2010/11/mapping-dates-and-time-zones-with.html