2015-11-16 30 views
9

私はQueryDataを既存のプロジェクトにSpring Dataと統合しようとしています。私はさまざまなサンプルを試しましたが、今ではこの1つに固執することに決めました。Advanced Spring Data JPA - Specifications and QuerydslSpring Data JPA - 仕様とQuerydsl

問題:Mavenのは、生成-源として、私は、プロジェクトを実行したときに、私はこのエラー

error: Annotation processor 'com.mysema.query.apt.jpa.JPAAnnotationProcessor' not found 

を取得するブログ記事が示すように、私は私のpom.xmlにこのプラグインを追加している:

<plugin> 
    <groupId>com.mysema.maven</groupId> 
    <artifactId>maven-apt-plugin</artifactId> 
    <version>1.0</version> 
    <executions> 
    <execution> 
     <phase>generate-sources</phase> 
     <goals> 
     <goal>process</goal> 
     </goals> 
     <configuration> 
     <outputDirectory>target/generated-sources</outputDirectory> 
     <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

と依存関係:

<dependency> 
    <groupId>com.mysema.querydsl</groupId> 
    <artifactId>querydsl-sql</artifactId> 
    <version>3.6.9</version> 
</dependency> 

缶誰ポイント私はこれを解決する方法やQueryDSLを自分のプロジェクトに適切に統合する方法を正しい方向に教えてくれますか?前もって感謝します!

+0

へのapt-mavenの-プラグインと変更されたバージョン用のプラグインのmaven-のapt-プラグインを使用すると、依存関係として 'querydsl-apt'を持っていますか? –

+0

確かに、依存関係の詳細 –

+1

でポストを更新します。あなたは 'querydsl-sql'ではなく' querydsl-jpa'を必要とします –

答えて

20

私はこの作品がcom.mysema.query .apt.jpa.JPAAnnotationProcessorのフォローなどの依存関係を変更することで、代わりにcom.querydsl .apt.jpa.JPAAnnotationProcessorを使用していた作ることができる方法:

私はまた、プロジェクトのルート MVN eclipで、コマンドラインで実行し

<plugin> 
    <groupId>com.mysema.maven</groupId> 
    <artifactId>apt-maven-plugin</artifactId> 
    <version>1.1.3</version> 
    <executions> 
    <execution> 
     <phase>generate-sources</phase> 
     <goals> 
     <goal>process</goal> 
     </goals> 
     <configuration> 
     <outputDirectory>${project.build.directory}/generated-sources</outputDirectory> 
     <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 

:プラグインはこのように終わる

<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-apt</artifactId> 
    <version>4.0.6</version> 
</dependency> 
<dependency> 
    <groupId>com.querydsl</groupId> 
    <artifactId>querydsl-jpa</artifactId> 
    <version>4.0.6</version> 
</dependency> 

se:をEclipseに更新し、生成されたソースを追加します。

更新:

置き換え1.1.3

+0

あなたの例をありがとう、完璧に動作します。注意:** "エンティティクラス[...] NoClassDefFoundError:com/querydsl/core/types/dsl/EntityPathBase" **のような例外を避けるためには、ルート** $ { project.build.directory}/generated-sources **であり、生成されたソースのサブディレクトリではありません。 – Chavjoh

関連する問題