是否可以在WAS Liberty配置文件中使用Hibernate 5作为JPA引擎

是否可以在WAS Liberty配置文件中使用Hibernate 5作为JPA引擎,hibernate,jpa,websphere-liberty,Hibernate,Jpa,Websphere Liberty,我在Liberty项目中使用了4.3.11,但在版本5中解决了Hibernate的一个bug。我尝试过升级,但有不同的例外 有人在使用Hibernate 5.x.x和Liberty配置文件吗?在server.xml的数据源库中包括哪些JAR 谢谢我已经能够让Hibernate 5.x在Liberty中至少部分工作,如果我包括以下jar: <library id="hibernate"> <file name="${server.config.dir}/hiberna

我在Liberty项目中使用了4.3.11,但在版本5中解决了Hibernate的一个bug。我尝试过升级,但有不同的例外

有人在使用Hibernate 5.x.x和Liberty配置文件吗?在server.xml的数据源库中包括哪些JAR


谢谢

我已经能够让Hibernate 5.x在Liberty中至少部分工作,如果我包括以下jar:

  <library id="hibernate">
    <file name="${server.config.dir}/hibernate/antlr-2.7.7.jar"/>
    <file name="${server.config.dir}/hibernate/classmate-1.3.0.jar"/>
    <file name="${server.config.dir}/hibernate/dom4j-1.6.1.jar"/>
    <file name="${server.config.dir}/hibernate/hibernate-commons-annotations-5.0.1.Final.jar"/>
    <file name="${server.config.dir}/hibernate/hibernate-core-5.2.6.Final.jar"/>
    <file name="${server.config.dir}/hibernate/javassist-3.20.0-GA.jar"/>
    <file name="${server.config.dir}/hibernate/jboss-logging-3.3.0.Final.jar"/>
  </library>

  <application location="myApp.war">
    <classloader commonLibraryRef="hibernate"/>
  </application>

如果包括以下jar,我已经能够让Hibernate 5.x在Liberty中至少部分工作:

  <library id="hibernate">
    <file name="${server.config.dir}/hibernate/antlr-2.7.7.jar"/>
    <file name="${server.config.dir}/hibernate/classmate-1.3.0.jar"/>
    <file name="${server.config.dir}/hibernate/dom4j-1.6.1.jar"/>
    <file name="${server.config.dir}/hibernate/hibernate-commons-annotations-5.0.1.Final.jar"/>
    <file name="${server.config.dir}/hibernate/hibernate-core-5.2.6.Final.jar"/>
    <file name="${server.config.dir}/hibernate/javassist-3.20.0-GA.jar"/>
    <file name="${server.config.dir}/hibernate/jboss-logging-3.3.0.Final.jar"/>
  </library>

  <application location="myApp.war">
    <classloader commonLibraryRef="hibernate"/>
  </application>

甚至我最终也遇到了类似的情况。 异常消息为:com.ibm.ws.container.service.state.StateChangeException:javax.xml.stream.FactoryConfigurationError:Provider javax.xml.stream.XMLEventFactory无法实例化:java.util.ServiceConfigurationError:javax.xml.XMLEventFactory:Provider com.ibm.xml.xlxp2.api.stax.XMLEventFactoryImpl未找到


你看到什么突破了吗

就连我最后也遇到了类似的情况。 异常消息为:com.ibm.ws.container.service.state.StateChangeException:javax.xml.stream.FactoryConfigurationError:Provider javax.xml.stream.XMLEventFactory无法实例化:java.util.ServiceConfigurationError:javax.xml.XMLEventFactory:Provider com.ibm.xml.xlxp2.api.stax.XMLEventFactoryImpl未找到


你看到什么突破了吗

我知道线程有点旧,但是比较Liberty Profile 17.0.0.2和17.0.0.3,我注意到他们引入了这个类

com.ibm.ws.jpa.hibernate.LibertyJtaPlatform
现在,当我启动应用服务器时,容器会在调用时传递一些属性

HibernatePersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo info, Map properties)
要初始化数据源的hibernate,并且在属性中具有该类的实例,请执行以下操作:


希望有帮助。

我知道线程有点旧,但是比较Liberty Profile 17.0.0.2和17.0.0.3,我注意到他们已经引入了这个类

com.ibm.ws.jpa.hibernate.LibertyJtaPlatform
现在,当我启动应用服务器时,容器会在调用时传递一些属性

HibernatePersistenceProvider.createContainerEntityManagerFactory(PersistenceUnitInfo info, Map properties)
要初始化数据源的hibernate,并且在属性中具有该类的实例,请执行以下操作:


希望有帮助。

从Hibernate 5.2.13开始,Liberty已经提供了适当的事务集成。如果您能够升级到此版本的Hibernate,那么它将被自动检测并应用,不再需要指定
Hibernate.transaction.jta.platform


有关更多详细信息,请参阅此Hibernate问题:

自Hibernate 5.2.13起,Liberty已经提供了适当的事务集成。如果您能够升级到此版本的Hibernate,那么它将被自动检测并应用,不再需要指定
Hibernate.transaction.jta.platform


有关更多详细信息,请参阅此Hibernate问题:

谢谢您的回复。不幸的是,我需要JTA数据源。(顺便说一句,我已经在使用org.hibernate.jpa.HibernatePersistenceProvider了……我想我一直都在persistence.xml中包含了它)。。。太糟糕了。我希望这不会迫使我回到JBoss…谢谢你的回复。不幸的是,我需要JTA数据源。(顺便说一句,我已经在使用org.hibernate.jpa.HibernatePersistenceProvider了……我想我一直都在persistence.xml中包含了它)。。。太糟糕了。我希望这不会强迫我回到JBOSS……也许你应该考虑使用在自由(JEclipse Link)中提供的JPA……我已经尝试过了,但是它在HEVENT下用Hibernate编码太多年了。几年前我尝试过,但EclipseLink显示了太多的警告和查询问题。不幸的是,即使试图严格遵循JPA,也存在太多的“次要”差异,无法在不更改代码的情况下更改JPA引擎。也许现在是时候重试了。也许你应该考虑使用在自由中提供的JPA(Eclipse Link)……我已经尝试过了,但是它在HEVENT下用Hibernate编码太多年了。几年前我尝试过,但EclipseLink显示了太多的警告和查询问题。不幸的是,即使试图严格遵循JPA,也存在太多的“次要”差异,无法在不更改代码的情况下更改JPA引擎。也许现在是时候再试一次了。我最终坚持使用Hibernate 4:-(我最终坚持使用Hibernate 4:-(