2012-04-11 10 views
2

Spring Data JPAをプロジェクトに追加しようとしているので、Repositoriesインターフェイスを利用できます。撮影したSpring Data JPAが以前に動作していたpersistence.xmlファイルを破壊するのはなぜですか?

ステップ - applicationContext.xmlを:

  • を追加しました私のapplicationContext.xmlをファイルのタグにxmlns:jpa="http://www.springframework.org/schema/data/jpa"

    • を追加しました私のapplicationContext.xmlをファイルのタグの子としての私のapplicationContext.xmlをファイル

    • 追加<jpa:repositories base-package="com.myproject.persistence" />のタグでxsi:schemaLocation定義にhttp://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd

撮影手順 - POM

<dependency> 
<groupId>org.springframework.data</groupId> 
<artifactId>spring-data-jpa</artifactId> 
<version>1.0.3.RELEASE</version> 
<exclusions> 
<exclusion> 
<groupId>commons-logging</groupId> 
<artifactId>commons-logging</artifactId> 
</exclusion> 
</exclusions> 
</dependency> 

これは私のサーバーは、以前に罰金のpersistence.xml構成文句効果があります。

org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 248; cvc-complex-type.3.1: Value '2.0' of attribute 'version' of element 'persistence' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '1.0'. 

なぜ春データJPAが突然しようとすると、1.0に戻しJPAを退行加えることでしょう!

完全なPOMが続きます。

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com</groupId> 
    <artifactId>myproject</artifactId> 
    <packaging>war</packaging> 
    <version>0.1.0.BUILD-SNAPSHOT</version> 
    <name>myproject</name> 
    <properties> 
     <aspectj.version>1.6.12</aspectj.version> 
     <java.version>6</java.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <roo.version>1.2.1.RELEASE</roo.version> 
     <slf4j.version>1.6.4</slf4j.version> 
     <spring.version>3.1.0.RELEASE</spring.version> 
    </properties> 
    <repositories> 
     <repository> 
      <id>spring-maven-release</id> 
      <name>Spring Maven Release Repository</name> 
      <url>http://maven.springframework.org/release</url> 
     </repository> 
     <repository> <id>spring-maven-milestone</id> <name>Spring Maven Milestone 
      Repository</name> <url>http://maven.springframework.org/milestone</url> 
     </repository> 
     <repository> 
      <id>spring-roo-repository</id> 
      <name>Spring Roo Repository</name> 
      <url>http://spring-roo-repository.springsource.org/release</url> 
     </repository> 
     <repository> 
      <id>java.net.m2</id> 
      <url>http://download.java.net/maven/2</url> 
     </repository> 
     <repository> 
      <id>prime-repo</id> 
      <url>http://repository.primefaces.org</url> 
      <name>PrimeFaces Maven Repository</name> 
     </repository> 
     <repository> 
      <id>JBoss Repo</id> 
      <url>https://repository.jboss.org/nexus/content/repositories/releases</url> 
      <name>JBoss Repo</name> 
     </repository> 
    </repositories> 
    <pluginRepositories> 
     <pluginRepository> 
      <id>spring-maven-release</id> 
      <name>Spring Maven Release Repository</name> 
      <url>http://maven.springframework.org/release</url> 
     </pluginRepository> 
     <pluginRepository> 
      <id>spring-maven-milestone</id> 
      <name>Spring Maven Milestone Repository</name> 
      <url>http://maven.springframework.org/milestone</url> 
     </pluginRepository> 
     <pluginRepository> 
      <id>spring-roo-repository</id> 
      <name>Spring Roo Repository</name> 
      <url>http://spring-roo-repository.springsource.org/release</url> 
     </pluginRepository> 
    </pluginRepositories> 
    <dependencies> 
     <!-- General dependencies for standard applications --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.10</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.16</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${slf4j.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>${aspectj.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjweaver</artifactId> 
      <version>${aspectj.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>javax.inject</groupId> 
      <artifactId>javax.inject</artifactId> 
      <version>1</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.flexjson</groupId> 
      <artifactId>flexjson</artifactId> 
      <version>2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-lang3</artifactId> 
      <version>3.1</version> 
     </dependency> 
     <!-- ROO dependencies --> 
     <dependency> 
      <groupId>org.springframework.roo</groupId> 
      <artifactId>org.springframework.roo.annotations</artifactId> 
      <version>${roo.version}</version> 
      <scope>provided</scope> 
     </dependency> 
     <!-- Spring dependencies --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.data</groupId> 
      <artifactId>spring-data-jpa</artifactId> 
      <version>1.0.3.RELEASE</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>${spring.version}</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aspects</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.18</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.9.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.9.Final</version> 
      <exclusions> 
       <exclusion> 
        <groupId>cglib</groupId> 
        <artifactId>cglib</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>dom4j</groupId> 
        <artifactId>dom4j</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jpa</artifactId> 
      <version>2.0.8</version> 
     </dependency> 

     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.2.0.Final</version> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.xml.bind</groupId> 
        <artifactId>jaxb-api</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.xml.bind</groupId> 
        <artifactId>jaxb-impl</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> 
     </dependency> 
     <dependency> 
      <groupId>cglib</groupId> 
      <artifactId>cglib-nodep</artifactId> 
      <version>2.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javax.transaction</groupId> 
      <artifactId>jta</artifactId> 
      <version>1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-jdbc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>1.5.6</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-dbcp</groupId> 
      <artifactId>commons-dbcp</artifactId> 
      <version>1.3</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>xml-apis</groupId> 
        <artifactId>xml-apis</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-api</artifactId> 
      <version>2.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.faces</groupId> 
      <artifactId>jsf-impl</artifactId> 
      <version>2.1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces</groupId> 
      <artifactId>primefaces</artifactId> 
      <version>3.2</version> 
     </dependency> 
     <dependency> 
      <groupId>org.primefaces.themes</groupId> 
      <artifactId>south-street</artifactId> 
      <version>1.0.3</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.el</groupId> 
      <artifactId>el-api</artifactId> 
      <version>2.2</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.2.2</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.1</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.13</version> 
      <classifier /> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.6.4.Final</version> 
      <classifier /> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> 
      <version>3.6.4.Final</version> 
      <classifier /> 
      <exclusions> 
       <exclusion> 
        <groupId>cglib</groupId> 
        <artifactId>cglib</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>dom4j</groupId> 
        <artifactId>dom4j</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.0.Final</version> 
      <classifier /> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.1.0.Final</version> 
      <classifier /> 
      <exclusions> 
       <exclusion> 
        <groupId>javax.xml.bind</groupId> 
        <artifactId>jaxb-api</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.xml.bind</groupId> 
        <artifactId>jaxb-impl</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>cglib</groupId> 
      <artifactId>cglib-nodep</artifactId> 
      <version>2.2</version> 
      <classifier /> 
     </dependency> 
     <dependency> 
      <groupId>commons-pool</groupId> 
      <artifactId>commons-pool</artifactId> 
      <version>1.5.4</version> 
      <classifier /> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
    </dependencies> 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.1.1</version> 
       <!-- <configuration> <webXml>target/web.xml</webXml> </configuration> --> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>${java.version}</source> 
        <target>${java.version}</target> 
        <encoding>${project.build.sourceEncoding}</encoding> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>aspectj-maven-plugin</artifactId> 
       <version>1.2</version> 
       <!-- NB: do not use 1.3 or 1.3.x due to MASPECTJ-90 and do not use 1.4 
        due to declare parents issue --> 
       <dependencies> 
        <!-- NB: You must use Maven 2.0.9 or above or these are ignored (see 
         MNG-2972) --> 
        <dependency> 
         <groupId>org.aspectj</groupId> 
         <artifactId>aspectjrt</artifactId> 
         <version>${aspectj.version}</version> 
        </dependency> 
        <dependency> 
         <groupId>org.aspectj</groupId> 
         <artifactId>aspectjtools</artifactId> 
         <version>${aspectj.version}</version> 
        </dependency> 
       </dependencies> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>test-compile</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <outxml>true</outxml> 
        <aspectLibraries> 
         <aspectLibrary> 
          <groupId>org.springframework</groupId> 
          <artifactId>spring-aspects</artifactId> 
         </aspectLibrary> 
        </aspectLibraries> 
        <source>${java.version}</source> 
        <target>${java.version}</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-resources-plugin</artifactId> 
       <version>2.5</version> 
       <configuration> 
        <encoding>${project.build.sourceEncoding}</encoding> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>2.9</version> 
       <configuration> 
        <printSummary>false</printSummary> 
        <redirectTestOutputToFile>true</redirectTestOutputToFile> 
        <excludes> 
         <exclude>**/*_Roo_*</exclude> 
        </excludes> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.2.1</version> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-deploy-plugin</artifactId> 
       <version>2.7</version> 
      </plugin> 
      <!-- IDE --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-eclipse-plugin</artifactId> 
       <version>2.7</version> 
       <!-- Note 2.8 does not work with AspectJ aspect path --> 
       <configuration> 
        <downloadSources>true</downloadSources> 
        <downloadJavadocs>false</downloadJavadocs> 
        <wtpversion>2.0</wtpversion> 
        <additionalBuildcommands> 
         <buildCommand> 
          <name>org.eclipse.ajdt.core.ajbuilder</name> 
          <arguments> 
           <aspectPath>org.springframework.aspects</aspectPath> 
          </arguments> 
         </buildCommand> 
         <buildCommand> 
          <name>org.springframework.ide.eclipse.core.springbuilder</name> 
         </buildCommand> 
        </additionalBuildcommands> 
        <additionalProjectnatures> 
         <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature> 
         <projectnature>com.springsource.sts.roo.core.nature</projectnature> 
         <projectnature>org.springframework.ide.eclipse.core.springnature</projectnature> 
        </additionalProjectnatures> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-idea-plugin</artifactId> 
       <version>2.2</version> 
       <configuration> 
        <downloadSources>true</downloadSources> 
        <dependenciesAsLibraries>true</dependenciesAsLibraries> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>tomcat-maven-plugin</artifactId> 
       <version>1.1</version> 
      </plugin> 
      <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>8.0.1.v20110908</version> 
       <configuration> 
        <webAppConfig> 
         <contextPath>/${project.name}</contextPath> 
        </webAppConfig> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

編集:次の永続プロバイダは、Spring Data JPAの依存関係の1つです。私はPOMの除外リストにそれらをすべて追加しました。これは動作しません!

SpringデータのPOMで指定された以下の持続性プロバイダには、除外リストにすべてが追加されています。まだ壊れました。

<dependency> 
<groupId>org.hibernate</groupId> 
<artifactId>hibernate-entitymanager</artifactId> 
<version>${hibernate.version}</version> 
<optional>true</optional> 
</dependency> 
<dependency> 
<groupId>org.eclipse.persistence</groupId> 
<artifactId>org.eclipse.persistence.jpa</artifactId> 
<version>${eclipselink.version}</version> 
<optional>true</optional> 
</dependency> 
<dependency> 
<groupId>org.apache.openjpa</groupId> 
<artifactId>openjpa-persistence-jdbc</artifactId> 
<version>${openjpa.version}</version> 
<optional>true</optional> 
<exclusions> 
<exclusion> 
<groupId>commons-logging</groupId> 
<artifactId>commons-logging</artifactId> 
</exclusion> 
</exclusions> 
</dependency> 

JPAの依存関係Eclipseによると: - あなたは(春・データに引きずられ、あるいはいくつかの忘れ依存関係のいずれかによって(クラスパス上の別のJPAの瓶を持っていないかどうかを

Screenshot

+1

spring-jpaとhibernate-jpaが奇妙に見える。それ以外はOKです。 – Bozho

+0

古い休止状態のjpaを削除する必要があることが判明しました。それはv2.0であったため、Spring Data JPAの前には直感的でしたが、私は議論しません!回答としてそれを固執し、私はそれを受け入れるので、ポイントを得る:-)ありがとう! – 8bitjunkie

+0

私の元の答えを元に戻しました:) – Bozho

答えて

1

チェックhibernate-jpa)、またはあなたのアプリケーションサーバーで)。

+0

こんにちは。以前はJPA 2.0を使用していましたが、これはpersistence.xmlファイルに含まれていたものです。Springデータの追加JPAにはこれが後退するという効果がありますが、私はSpring Data JPAが非常に新しい製品だと考えました。私も – 8bitjunkie

+0

ですが、いくつかのメイヴァンは間違っているかもしれません。 JPA 1の依存関係の階層を確認できますか? – Bozho

+0

階層のスクリーンショットを追加しました – 8bitjunkie

0

JPA 1を実装しているspring-jpaに間違った依存関係があり、ここではhibernate-jpa-2.0-apiで表されるJPA 2の実装よりも優先されます。あなたは既にspring-data-jpaとhibernate-jpa-2.0-apiを持っているので、あなたはそれを必要としません。あなたのpom.xmlからspring-jpaの依存関係を削除すれば、うまくいくはずです。

関連する問題