如何使用Hibernate 3.3.2GA将带有时区的时间戳映射到Java数据类型?

如何使用Hibernate 3.3.2GA将带有时区的时间戳映射到Java数据类型?,java,oracle,hibernate,orm,sqldatatypes,Java,Oracle,Hibernate,Orm,Sqldatatypes,如何使用3.3.2GA将Oracle列类型或映射到Java数据类型?我是否可以将这些映射到或数据类型?使用。它有一个 但首先要确保你真的需要存储时区。更好的做法是将时间存储在固定的TZ(例如UTC)中,并根据当前用户偏好显示时间。人们感兴趣的是他们所在时区中的事件时间,而不是事件源的时区。是否将带有本地时区的时间戳存储在固定时区(数据库时区)中并将日期转换为客户端时区?我认为您应该避免使用本地时区。在您的应用程序中,而不是在db配置中进行此操作。Bozho,我同意您的意见,前提是所有访问数据库的

如何使用3.3.2GA将Oracle列类型或映射到Java数据类型?我是否可以将这些映射到或数据类型?

使用。它有一个


但首先要确保你真的需要存储时区。更好的做法是将时间存储在固定的TZ(例如UTC)中,并根据当前用户偏好显示时间。人们感兴趣的是他们所在时区中的事件时间,而不是事件源的时区。

是否将带有本地时区的时间戳存储在固定时区(数据库时区)中并将日期转换为客户端时区?我认为您应该避免使用本地时区。在您的应用程序中,而不是在db配置中进行此操作。Bozho,我同意您的意见,前提是所有访问数据库的应用程序都遵循相同的固定时区约定。特别是,所有可能通过临时查询工具直接访问数据库的开发人员必须了解该约定,否则,他们可能会错误地解释自己时区中的事件时间,而不是说,UTC。虽然可以使用PersistentDateTimeTZ将时区存储在数据库中是正确的,但必须注意,这是一个与数据库无关的解决方案,因为它需要一个额外的时区列。它没有使用Oracle“timestamp with timezone”数据类型(>8i)。说“人们对他们时区中的时间感兴趣”并不总是正确的。时间可以是很多事情,说它应该总是转换为当地时间并不总是有效的。
@Columns(columns={@Column(name="startTime"),@Column(name="startTimezone")})
@Type(type="org.joda.time.contrib.hibernate.PersistentDateTimeTZ")
private DateTime startDateTime;