我正在使用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
获取。正确识别persistence.xml中的其他属性。
目前,我不确定问题的位置以及如何解决问题。此外,当我使用jvm参数-Duser.timezone=UTC
运行Wildfly Swarm时,没有任何变化。这可能是ExamplesDS的一个问题,还是Wildfly Swarm忽略了我的依赖声明?如果是这样,我如何确保Swarm使用正确的版本?
答案 0 :(得分:1)
在许多方面,WildFly Swarm的行为与WildFly类似。您不能像这样升级Hibernate / JPA,也不能升级任何其他Java EE规范。
可能有这样的方法,例如直接更改Swarm uberjar中的m2repo
内容,或者使用子系统和模块进行操作,但是你不应该期望它能够完美地工作。