SpringPersistenceUnitInfo::AbstractMethodError

标签 spring jpa-2.0

我有一个使用 Spring 3.0.5、JPA2 和 Hibernate 3.6.7 的应用程序。 Maven 处理我的依赖管理。这是一个 pom 摘录:

<properties>
  <spring.version>3.0.5.RELEASE</spring.version>
</properties>
<dependencies>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
  </dependency>
...
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-hibernate3</artifactId>
    <version>2.0.8</version>
    <scope>compile</scope>
      <exclusions>
         <exclusion>
       <groupId>org.hibernate</groupId>
       <artifactId>hibernate</artifactId>
     </exclusion>
      </exclusions>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>3.6.7.Final</version>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.7.Final</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jpa</artifactId>
    <version>2.0.8</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.hibernate.java-persistence</groupId>
    <artifactId>jpa-api</artifactId>
    <version>2.0-cr-1</version>
    <scope>compile</scope>
  </dependency>
...

应用程序构建得很好,但是,当尝试加载它时,Tomcat 容器会提示以下内容:

引起:org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/applicationContext.xml]中定义名称为'entityManagerFactory'的bean创建错误:init方法调用失败;嵌套异常是 java.lang.AbstractMethodError: org.springframework.orm.jpa.persistenceunit.SpringPersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

关于可能导致这种情况的任何想法?所有依赖项似乎都完好无损。

谢谢。

最佳答案

您正在混合来自 Spring 2.x 和 3.x 的工件。

替换旧版本 spring-hibernate3spring-jpa

<dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-orm</artifactId>
     <version>${spring.version}</version>
     <scope>compile</scope>
</dependency> 

关于SpringPersistenceUnitInfo::AbstractMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8034545/

相关文章:

spring - org.springframework.expression.spel.SpelEvaluationException - 无法在 null 上找到属性或字段

Spring Data MongoDB存储库方法通过id列表删除

Java自定义注解

java - 使用 Spring/AspectJ 的架构实现

java - Jersey 将空值序列化为 json : How to skip

JPA Dynamic Order By with Criteria API

java - java中没有@Id注释的序列生成器与Postgres中的hibernate在一定范围内

hibernate - 正确使用JPA标准API,谓词以及CriteriaQuery的where方法

javascript - 使用 JavaScript 发送删除请求

java - JPA 2.0 - native 查询中的 NVARCHAR