Liquibase 将 ZonedDateTime 映射为带时区的时间戳

问题描述 投票:0回答:1

我正在使用

mvn liquibase:diff
来生成与我的 Spring 实体和数据库之间的差异相关的更改。

一切工作正常,除了我使用

ZonedDateTime
类型时。
mvn liquibase:diff
使用
TIMESTAMP WITHOUT TIME ZONE
生成变更集,但它应该生成
TIMESTAMP WITH TIME ZONE
。我如何指定映射必须是
ZonedDateTime → TIMESTAMP WITH TIME ZONE
LocalDateTime → TIMESTAMP WITHOUT TIME ZONE
.

附注我正在使用 PosgreSQL 数据库。 谢谢你。

我期望映射一定是

ZonedDateTime → TIMESTAMP WITH TIME ZONE
,并且
LocalDateTime → TIMESTAMP WITHOUT TIME ZONE

java liquibase liquibase-hibernate liquibase-maven-plugin
1个回答
0
投票

不,不是
ZonedDateTime

ZonedDateTime
未在 Java 类到 SQL 类型的 JDBC 映射中定义。

OffsetDateTime

OffsetDateTime
是与类似于 SQL 标准类型
TIMESTAMP WITH TIME ZONE
类型的列一起使用的类。请参阅JDBC 4.2 规范

类型 标准 SQL PostgreSQL Java
瞬间 带时区的时间戳 带时区的时间戳
OffsetDateTime
不是片刻 无时区的时间戳 无时区的时间戳
LocalDateTime
© www.soinside.com 2019 - 2024. All rights reserved.