Hibernate Timestamp with Timezone

2020-02-05 11:12发布

I'm new to Hibernate and am working with an Oracle 10g database. We have columns in our tables that are of type TIMESTAMP WITH TIMEZONE. Hibernate does not seem to support this mapping directly. Is there a standard way to go about this?

2条回答
\"骚年 ilove
2楼-- · 2020-02-05 11:44

An example of a UserType storing java.util.Calendar with time zone information is given in this blog post: http://www.joobik.com/2010/12/mapping-dates-and-time-zones-with.html

查看更多
做自己的国王
3楼-- · 2020-02-05 11:47

TIMESTAMP WITH TIMEZONE is Oracle extension and thus is not supported by Hibernate out of the box. You have two options:

1) Change your table structure to store timezone in a separate column (as VARCHAR2). Hibernate is able to map java.util.TimeZone as timezone type using its ID.

2) Write a custom class to hold both timestamp and timezone and a custom UserType that would persist it. It will have to be a CompositeUserType if you need the ability to use its individual properties (e.g. timezone or timestamp) in queries. Look at this example to get you started; you'll need to alter it to actually store the timezone.

查看更多
登录 后发表回答