2015-11-16 28 views
9

Spring Data ile mevcut projeme QueryDSL'yi entegre etmeye çalışıyorum, farklı örnekler denedim ve şimdi buna bir tane yapıştırmaya karar verdim Advanced Spring Data JPA - Specifications and Querydsl.Spring Data JPA - Spesifikasyonlar ve Querydsl

Sorun:

<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> 
: Maven oluşturmak-kaynağı olarak projeyi çalıştırdığınızda ben blog postasında olarak benim pom.xml için bu eklentiyi ekleyerek ediyorum

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

belirten bu hatayı olsun

ve bağımlılık:

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

Can kimse noktası Bunu nasıl çözeceğime veya QueryDSL’nin projeme uygun şekilde nasıl entegre edileceğine dair doğru yönde bana? Şimdiden teşekkürler!

+0

apt-maven-plugin ve değiştirilen sürümü için eklenti maven-apt-eklentisi bir bağımlılık olarak 'querydsl-apt' var mı? –

+0

emin, bağımlılık detay –

+1

ile sorgulayacağım 'querydsl-jpa' değil' querydsl-sql' 'sorgudsl-sql ' –

cevap

20

Bu eser com.mysema.query .apt.jpa.JPAAnnotationProcessor ve aşağıdaki gibi bağımlılıklar değiştirerek yerine com.querydsl .apt.jpa.JPAAnnotationProcessor kullanıyordum yapabiliriz yolu:

<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> 

eklenti sonunun böyle: Ben de projeleri komut satırında yürütülen

<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> 

kökünü mvn tu se: oluşturulan kaynakları eklemek için Eclipse'i güncellemek için tutulması.

Güncelleme:

Değiştirilen 1.1.3

+0

Örneğiniz için teşekkür ederiz, mükemmel çalışıyor . Not: ** "varlık sınıfı yüklenemedi" [...] NoClassDefFoundError: com/querydsl/core/types/dsl/EntityPathBase ** gibi bir istisnayı önlemek için, root ** $ {'nın kullanılması önemli görünmektedir. project.build.directory}/generated-sources ** ve oluşturulan kaynaklarda bir alt dizin değil. – Chavjoh

İlgili konular