Spring Data JPA - Технические характеристики и Querydsl

Я пытаюсь интегрировать QueryDSL в мой существующий проект с помощью Spring Data, я пробовал разные образцы, и теперь я решил придерживаться этого Advanced Spring 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 в мой проект? Заранее спасибо!

Ответы

Ответ 1

То, как я мог сделать эту работу, это использовать com.querydsl.apt.jpa.JPAAnnotationProcessor вместо com.mysema.query.apt.jpa.JPAAnnotationProcessor и изменив зависимости следующим образом:

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

Плагин заканчивается следующим образом:

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

Я также выполнил в командной строке в проекте root mvn eclipse: eclipse, чтобы обновить Eclipse, чтобы включить сгенерированные источники.

Обновить:

Заменил плагин maven-apt-plugin для apt-maven-plugin и изменил версию на 1.1.3