hibernate.jdbc.time_zone 设置在 Wildfly Swarm 应用程序中被忽略
hibernate.jdbc.time_zone setting is ignored in Wildfly Swarm application
我正在使用 Wildfly Swarm (2017.11.0) 构建一个应用程序,它需要 ZonedDateTime
个对象以 UTC 格式保存。
目前,我正在使用 ExamplesDS JTA 数据源并配置如下 属性:
<property name="hibernate.jdbc.time_zone" value="UTC"/>
由于 Swarm JPA 依赖项将 Hibernate 5.0.x 和 JPA 2.1 声明为依赖项,因此我手动包含了
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
</dependency>
和
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
并将它们设置为未提供。
但是,属性 被 Hibernate 完全忽略,Hibernate 持续存在并获取时间戳作为 ZonedDateTime
with local zone。 persistence.xml 中的其他属性被正确识别。
目前,我不确定问题出在哪里以及如何解决。此外,当我使用 jvm 参数 运行 Wildfly Swarm -Duser.timezone=UTC
时,没有任何变化。这可能是 ExamplesDS 的问题,还是 Wildfly Swarm 忽略了我的依赖项声明?如果是这样,我如何确保 Swarm 使用正确的版本?
在许多方面,WildFly Swarm 的行为与 WildFly 一样。您不能像这样升级 Hibernate/JPA,也不能升级任何其他 Java EE 规范。
可能有一些方法可以做到这一点,例如直接更改 Swarm uberjar 中 m2repo
的内容,或者使用子系统和模块进行操作,但你不应该期望它能完美地工作。
我正在使用 Wildfly Swarm (2017.11.0) 构建一个应用程序,它需要 ZonedDateTime
个对象以 UTC 格式保存。
目前,我正在使用 ExamplesDS JTA 数据源并配置如下 属性:
<property name="hibernate.jdbc.time_zone" value="UTC"/>
由于 Swarm JPA 依赖项将 Hibernate 5.0.x 和 JPA 2.1 声明为依赖项,因此我手动包含了
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
</dependency>
和
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
并将它们设置为未提供。
但是,属性 被 Hibernate 完全忽略,Hibernate 持续存在并获取时间戳作为 ZonedDateTime
with local zone。 persistence.xml 中的其他属性被正确识别。
目前,我不确定问题出在哪里以及如何解决。此外,当我使用 jvm 参数 运行 Wildfly Swarm -Duser.timezone=UTC
时,没有任何变化。这可能是 ExamplesDS 的问题,还是 Wildfly Swarm 忽略了我的依赖项声明?如果是这样,我如何确保 Swarm 使用正确的版本?
在许多方面,WildFly Swarm 的行为与 WildFly 一样。您不能像这样升级 Hibernate/JPA,也不能升级任何其他 Java EE 规范。
可能有一些方法可以做到这一点,例如直接更改 Swarm uberjar 中 m2repo
的内容,或者使用子系统和模块进行操作,但你不应该期望它能完美地工作。