web-dev-qa-db-fra.com

Spring Data JPA - Spécifications et Querydsl

J'essaie d'intégrer QueryDSL à mon projet existant avec Spring Data, j'ai essayé différents exemples et maintenant j'ai décidé de m'en tenir à celui-ci Advanced Spring Data JPA - Spécifications et Querydsl .

Problème : lorsque j'exécute le projet en tant que Maven generate-sources, j'obtiens cette erreur

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

J'ajoute ce plugin à mon pom.xml comme l'indique le billet de blog:

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

et la dépendance:

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

Quelqu'un peut-il m'indiquer dans la bonne direction comment résoudre ce problème ou comment intégrer correctement QueryDSL à mon projet? Merci d'avance!

17
M.Octavio

La façon dont j'ai pu faire ce travail était d'utiliser le com.querydsl. Apt.jpa.JPAAnnotationProcessor au lieu du com.mysema.query. Apt.jpa.JPAAnnotationProcessor et en changeant les dépendances comme suit:

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

Le plugin finit comme ceci:

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

J'ai également exécuté dans la ligne de commande à la racine des projets mvn Eclipse: eclipse pour mettre à jour Eclipse pour inclure les sources générées.

Mise à jour:

Remplacé le plugin maven-apt-plugin pour apt-maven-plugin et changé la version en 1.1.3

37
M.Octavio