java.lang.NoSuchMethodError:javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

Gou*_*tia 2 websphere hibernate jpa

我是Websphere应用服务器的新手.请让我知道我做错了什么.我正进入(状态java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

我已经检查了谷歌,但最大的答案是告诉使用Hibernate 4.3.X版本和JPA 2.1版本.我使用相同的版本.如果我删除JPA jar并添加javax.persistence jar,那么我找不到Namespace方法.

我的项目使用的是JSF,EJB和JPA(Hibernate).

正如我所追踪的那样,它正在给出这行代码

SessionFactory sessionFactory = configuration.buildSessionFactory(ssrb.build());
Run Code Online (Sandbox Code Playgroud)

我使用sql server 2012作为数据库

提前致谢

我正在使用的罐子

antlr-2.7.7
com.ibm.mqjms
hibernate-commons-annotations-4.0.5.Final
hibernate-entitymanager-4.3.8.Final
hibernate-core-4.3.8.Final
hibernate-jpa-2.1-api-1.0.0.Final
jandex-1.1.0.Final
jasper
jasper-compiler-jdt
javax.ejb
javax.faces-2.1.7
javax.jms
javax.mail-1.4.4
javax.servlet
javax-inject
jsf-api-2.2.5
Run Code Online (Sandbox Code Playgroud)

Gas*_*Gas 5

WebSphere已内置JPA 2.0提供程序(OpenJPA),JoinColumn.foreignKey()可从2.1获得.如果必须使用JPA 2.1和Hibernate,则必须覆盖默认的JPA提供程序.有关详细信息,请参阅使用第三方持久性提供程序.

您必须将<provider>元素添加到其中persistence.xml以明确指定要使用的持久性提供程序,并将应用程序的classloader设置为PARENT_LAST.

  • 我希望有一种方法可以禁用websphere中所有内置的东西.. (2认同)