编程语言
首页 > 编程语言> > EntityManager.unwrap()抛出java.lang.AbstractMethodError

EntityManager.unwrap()抛出java.lang.AbstractMethodError

作者:互联网

我在应用程序中实现JPA 2.0时遇到一些问题.我正在使用条件查询,因此需要从EntityManager中获取会话.我以以下方式(根据this)
    会话ses = entityManager.unwrap(Session.class);

在Tomcat 7.0.8之上运行后,我得到以下信息:

Struts has detected an unhandled exception:
# Messages:     org.hibernate.ejb.EntityManagerImpl.unwrap(Ljava/lang/Class;)Ljava/lang/Object;

Stacktraces 
java.lang.reflect.InvocationTargetException
java.lang.AbstractMethodError: org.hibernate.ejb.EntityManagerImpl.unwrap(Ljava/lang/Class;)Ljava/lang/Object; sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

我还引用了以下与Hibernate相关的依赖关系(我怀疑问题出在哪里):

hibernate-3.2.5.ga.jar
hibernate-annotations-3.4.0.GA.jar
hibernate-commons-annotations-3.1.0.GA.jar
hibernate-core-3.3.0.GA.jar
hibernate-entitymanager-3.4.0.GA.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar

有什么想法吗?

解决方法:

Hibernate 3.4.x不符合JPA-2. JPA 2 was first supported in Hibernate Entitymanager 3.5.0.

您得到的错误意味着ClassLoader找不到正在访问的接口方法的实现方法,如果基础实现仅符合JPA-1,则这非常有意义,因为JPA 2中已添加了拆包.

标签:jpa,hibernate,jpa-2-0,hibernate-entitymanager,java
来源: https://codeday.me/bug/20191102/1990613.html