Hibernate& Spring 3.1.0版本需要JPA jar

时间:2016-01-20 06:55:05

标签: spring hibernate spring-data-jpa spring-3 spring-orm

我一直在将我的应用程序从Spring 4.0迁移到spring 3.1.0。 我浪费了整整一天的时间。找不到确切的jar依赖关系&他们的版本。如果这里有人可以就Hibernate&的版本提出建议,那将会非常有帮助。 JPA罐我应该用于Spring 3.1.0版(或者任何人都会赞赏)。

提前致谢。

我尝试迁移的事情:

  1. 更改了春季所有罐子的版本。
  2. 现在尝试更改jpa的jars版本时:

    a)将spring-data-jpa-1.6.0.RELEASE更改为spring-data-jpa-1.2.0.RELEASE

    b)将spring-data-commons-1.9.2.RELEASE更改为spring-data-commons-1.4.0.RELEASE。

  3. 现在我得到错误:

    org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.FatalBeanException: Invalid NamespaceHandler class [org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler] for namespace [http://www.springframework.org/schema/data/jpa]: problem with handler class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor

    Jar Snapshot
      enter image description here

    applicationContext.xml Spring配置xml

    `<?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:jpa="http://www.springframework.org/schema/data/jpa"
    xmlns:repository="http://www.springframework.org/schema/data/repository"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
    http://www.springframework.org/schema/data/jpa
    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">`
    

2 个答案:

答案 0 :(得分:0)

这应该适合春季3.1.0

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>3.6.10.Final</version>
</dependency>

答案 1 :(得分:0)

对不起讲道,但你真的应该花时间升级那些过时的插件(或报废),而不是降级到古老版本的Spring(或任何相关的库)。已经添加了无数的改进,包括安全相关的补丁。

回答实际问题:使用Maven。

直接在Maven上创建应用程序或使用Maven poms中的信息。

spring-orm的最新3.1.x版本是3.1.4。这是人工制品的pom:http://central.maven.org/maven2/org/springframework/spring-orm/3.1.4.RELEASE/spring-orm-3.1.4.RELEASE.pom

对于hibernate,它指定

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>3.6.0.Final</version>
   <optional>true</optional>
</dependency>

如果您正在使用Maven或类似的东西,这应该足以引入兼容版本的Hibernate以及所有必需的依赖项,包括JPA API。如果您不使用Maven,请设置一个具有该依赖关系的小型maven项目。使用依赖项插件列出所有依赖项,包括其版本的瞬态依赖项:

mvn dependency:tree