我有一个mysql数据库,它的列是time类型的。我正在使用hibernate进行orm。休眠时间类型为 java.sql.Time
. 我注意到每当我更新表中的一列时,时间值也会被更新。每次更新都会添加utc偏移量。例如,考虑一个带有 name
(字符串)和时间字段。让时间的初始db条目为“00:00:00”。现在如果我更新 name
使用endpoint+hibernate查询,时间值在db中更新为“05:00:00”。如果我更新 name
同样,时间值在db中变为“10:00:00”。顺便说一下,我的时区是东部。为什么会发生这种情况?我该如何预防?
设置 hibernate.jdbc.time_zone: UTC
修复了这个问题,但我想了解更多关于这个行为的信息。
1条答案
按热度按时间f4t66c6m1#
你试过tot user localtime而不是java.sql.time吗?
localtime应该能处理所有时区陷阱。
java.sql.time不支持时区。