Spring 数据 JPA - 规范和 Querydsl
Spring Data JPA - Specifications and Querydsl
我正在尝试将 QueryDSL 与 Spring 数据集成到我现有的项目中,我尝试了不同的样本,现在我决定坚持使用这个 Advanced Spring Data JPA - Specifications and Querydsl。
问题:当我 运行 项目作为 Maven 生成源时,我得到这个错误
error: Annotation processor 'com.mysema.query.apt.jpa.JPAAnnotationProcessor' not found
我正在将此插件添加到我的 pom.xml 中,正如博客 post 所示:
<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 正确集成到我的项目中吗?提前致谢!
我完成这项工作的方法是使用 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>
我还在项目根目录的命令行中执行了 mvn eclipse:eclipse 以更新 Eclipse 以包含生成的源代码。
更新:
将插件maven-apt-plugin替换为apt-maven-plugin并将版本更改为1.1.3
无需显式配置 apt-maven-plugin
,只需将以下依赖项添加到项目中(注意 jpa
分类器):
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jpa</classifier>
</dependency>
此外,如果您想要的 Querydsl 功能比 QuerydslPredicateExecutor
提供的更多,请查看 https://github.com/infobip/infobip-spring-data-querydsl#JPA。
我正在尝试将 QueryDSL 与 Spring 数据集成到我现有的项目中,我尝试了不同的样本,现在我决定坚持使用这个 Advanced Spring Data JPA - Specifications and Querydsl。
问题:当我 运行 项目作为 Maven 生成源时,我得到这个错误
error: Annotation processor 'com.mysema.query.apt.jpa.JPAAnnotationProcessor' not found
我正在将此插件添加到我的 pom.xml 中,正如博客 post 所示:
<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 正确集成到我的项目中吗?提前致谢!
我完成这项工作的方法是使用 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>
我还在项目根目录的命令行中执行了 mvn eclipse:eclipse 以更新 Eclipse 以包含生成的源代码。
更新:
将插件maven-apt-plugin替换为apt-maven-plugin并将版本更改为1.1.3
无需显式配置 apt-maven-plugin
,只需将以下依赖项添加到项目中(注意 jpa
分类器):
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<classifier>jpa</classifier>
</dependency>
此外,如果您想要的 Querydsl 功能比 QuerydslPredicateExecutor
提供的更多,请查看 https://github.com/infobip/infobip-spring-data-querydsl#JPA。