我正在使用Spring Data JPA
和LocalDateTime
,同时在Oracle的TIMESTAMP WITH TIMEZONE
类型列中插入值。即使LocalDateTime
不包含时区信息,Hibernate也使用JVM默认的user.timezone
。
我尝试通过spring.jpa.properties.hibernate.jdbc.time_zone
属性控制此值,但是被忽略了,仅在JVM上直接使用-Duser.timezone
会影响Hibernate附加到我的时间戳的时区值。
到这里一切都OK,但是我的问题是,Hibernate在更新列时使用的格式为TZR
(例如UTC
),如here所述,但是我有一个要求具有TZH:TZM
(例如+00:00
)格式。有趣的是,类型TIMESTAMP WITH TIMEZONE
保持插入数据的格式,因此如果我用TZR
插入,则选择它,我的要求是直接选择此列而无需任何输入格式定义,因此迫使我从Hibernate发送偏移格式,但是我无法实现。
在发送时间戳信息时,是否可以控制Hibernate使用的格式?我无法通过我的LocalDateTime
字段进行控制,因为它们已经没有时区信息。