我是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
答案 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。