Wildfly Swarm应用程序

时间:2017-11-16 17:50:46

标签: hibernate jpa wildfly timestamp-with-timezone wildfly-swarm

我正在使用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使用正确的版本?

1 个答案:

答案 0 :(得分:1)

在许多方面,WildFly Swarm的行为与WildFly类似。您不能像这样升级Hibernate / JPA,也不能升级任何其他Java EE规范。

可能有这样的方法,例如直接更改Swarm uberjar中的m2repo内容,或者使用子系统和模块进行操作,但是你不应该期望它能够完美地工作。