首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Weblogic11g - java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()z

Weblogic11g - java.lang.NoSuchMethodError: javax.persistence.OneToOne.orphanRemoval()z
EN

Stack Overflow用户
提问于 2013-05-13 21:39:02
回答 2查看 8.4K关注 0票数 1

我知道这个问题在这里被问了很多次,但似乎没有一个解决方案对我有效。请原谅我再次问这个问题,因为我对maven和hibernate都是新手。

pom.xml中的hibernate依赖

代码语言:javascript
复制
<hibernate.version>4.2.0.Final</hibernate.version>

<dependency>
 <groupId>org.hibernate</groupId>
 <artifactId>hibernate-entitymanager</artifactId>
 <version>${hibernate.version}</version>
</dependency>

<dependency>
 <groupId>org.hibernate</groupId>
 <artifactId>hibernate-validator</artifactId>
 <version>${hibernate.version}</version>
</dependency>

这给我提供了以下jars:

代码语言:javascript
复制
hibernate-entitymanager-4.2.0.Final
hibernate-core-4.2.0.Final
hibernate-validator-4.2.0.Final
hibernate-jpa-2.0-api-1.0.1.Final

我还有:

代码语言:javascript
复制
hibernate-commons-annotations-4.0.1.Final

但我不确定我是怎么得到它的。

我对Category - Product关系使用一对一关系。

代码语言:javascript
复制
@Entity
@Table(name="Products")
public class Product {
   @Id    
   @Column(name="id")
   @GeneratedValue
   int productId;

   @NotEmpty
   @Length(max=50)
   @Column(name="name")
   String name;

   @Column(name="category_id")
   int categoryId;

   @OneToOne
   @ForeignKey(name="categoryId")
   private Category category;

   // getters and setters

}

编辑:

因为很明显Weblogic 11g jpa jar优先于'hibernate-jpa-2.0-api‘。我应该退回到使用jpa-1.0的旧版本的hibernate,还是有办法强制weblogic使用'hibernate- jpa -2.0-api‘而不是它的jpa jar?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-13 22:01:07

我认为更好的问题是在类路径中是否有任何不需要的jars,而不是是否缺少任何东西。获得NoSuchMethodError通常意味着您有一个库需要另一个库的特定版本,而它在运行时最终使用的版本不是正确的版本。在您的例子中,我会在您的类路径中查找ejb3-persistence.jar,因为这个错误似乎与OneToOne注释有关。使用hibernate,您应该从hibernate-jpa-2.0-api-1.0.1.Final获得这个文件,但我猜您也有来自另一个jar的OneToOne注释类文件。

而且,似乎其他人已经遇到了类似的问题。看看这是否有帮助:

java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z

另外,由于您使用的WebLogic11g是一个JavaEE5服务器,并且与hibernate-jpa-2.0JAR试图使用的JavaEE6不兼容。如果你打算部署到WebLogic11g,你需要找到一个与之兼容的hibernate版本,我不认为4.2.0最终版是。

Weblogic 11g and JavaEE 6

票数 2
EN

Stack Overflow用户

发布于 2014-07-10 22:21:41

我有相同的pbl,我通过删除persistence-api-1.0.jar & ejb3-persistence.jar并添加javax.persistence-2.0.0.jar解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16523532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档