我正在尝试将 QueryDSL 与 Spring Data 集成到我现有的项目中,我尝试了不同的示例,现在我决定坚持使用这个高级 Spring Data JPA - 规范和 Querydsl https://spring.io/blog/2011/04/26/advanced-spring-data-jpa-specifications-and-querydsl/.
Problem:当我作为 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 正确集成到我的项目中的正确方向吗?提前致谢!
我可以使这项工作的方式是使用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 以包含生成的源。
Update:
将插件 maven-apt-plugin 替换为 apt-maven-plugin 并将版本更改为 1.1.3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)