【发布时间】:2023-03-04 11:51:01
【问题描述】:
我有一个使用带有 datetimeoffset 列的 SQLServer 数据库的应用程序。最好使用 ZonedDateTime 作为我的 JPA 实体对象类型,如下所示:
@Column(name = "CreateTimestamp", nullable = false)
ZonedDateTime createTimestamp;
但是,时区未正确保存。无论我在 ZonedDateTime 中将 ZoneId 设置为什么,数据库中的值都将始终为 GMT 格式。
看看Microsoft's JDBC mapping diagram,推荐使用的类是microsoft.sql.DateTimeOffset,这不是我想要的。
我已经探索过使用@Converter 在两者之间进行映射,但是必须提供这样的特殊知识似乎是一个危险信号,表明我做错了 - 特别是因为我需要它在集成测试中工作使用 H2。
以与供应商无关的方式使用 datetimeoffset 和 ZonedDateTime 的最佳方式是什么?
【问题讨论】:
标签: java sql-server jpa