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

时间:2015-01-21 08:04:21

标签: hibernate jpa websphere

我是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());

我使用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

1 个答案:

答案 0 :(得分:5)

WebSphere已内置JPA 2.0提供程序(OpenJPA),JoinColumn.foreignKey()可从2.1获得。如果必须使用JPA 2.1和Hibernate,则必须覆盖默认的JPA提供程序。有关详细信息,请参阅Using third-party persistence providers

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