在部署到websphere时在hibernate 5上使用JPA 2.0

时间:2018-02-09 04:31:14

标签: java spring hibernate jpa websphere

当我尝试在Websphere Application Server 9.0上部署我的应用程序时出现此错误

An error occurred in the org.hibernate.jpa.HibernatePersistenceProvider persistence provider when it attempted to create the container entity manager factory for the ApplicationEntityManager persistence unit. The following error occurred: java.lang.ClassCastException: org.hibernate.jpa.HibernatePersistenceProvider incompatible with javax.persistence.spi.PersistenceProvider

有人建议我将我的JPA降级到2.0。是否可以将JPA 2.0与Hibernate 5.2.1一起使用。或者有另一种解决方案来解决我的问题。

1 个答案:

答案 0 :(得分:1)

如果使用传统的WebSphere Application Server, 以下是设置服务器提供的JPA规范级别的说明, https://www.ibm.com/support/knowledgecenter/en/SSEQTP_9.0.0/com.ibm.websphere.base.doc/ae/tejb_idmod_jpaspec.html

也就是说,Hibernate 5.2.1似乎依赖于JPA 2.1,而不是2.0。查看此处指出的依赖项, https://mvnrepository.com/artifact/org.hibernate/hibernate-core/5.2.1.Final

问题可能是由于在应用程序中包含JPA规范JAR的副本,导致服务器和应用程序试图加载相同类的不同副本,这些副本会发生冲突并产生此错误。检查您的应用程序并从中删除JPA规范JAR的所有副本(包括Hibernate提供的任何副本),以便仅使用服务器副本来加载JPA。