Spring Data Querydsl在Eclipse中无法生成查询类求助
Spring Boot + Querydsl 集成:解决Q类未生成问题
我之前在Eclipse里集成Querydsl时也碰到过一模一样的问题,折腾了好一会儿才捋顺,咱们一步步排查你的配置:
1. 先补全核心依赖
你贴的querydsl-apt只是注解处理器,还得配上Querydsl的JPA和核心依赖才能生成实体对应的Q类,赶紧把这两个依赖补上:
<dependency> <groupId>com.mysema.querydsl</groupId> <artifactId>querydsl-jpa</artifactId> <version>${querydsl.version}</version> </dependency> <dependency> <groupId>com.mysema.querydsl</groupId> <artifactId>querydsl-core</artifactId> <version>${querydsl.version}</version> </dependency>
注意:${querydsl.version}得用和Spring Boot兼容的稳定版本,比如Spring Boot 2.x配4.4.0就挺稳,别瞎用太新的版本踩坑
2. 检查Maven APT插件配置
光有依赖不够,得在pom.xml的<build>节点里配置APT插件,告诉Maven该用哪个注解处理器生成Q类:
<build> <plugins> <plugin> <groupId>com.mysema.maven</groupId> <artifactId>apt-maven-plugin</artifactId> <version>1.1.3</version> <executions> <execution> <goals> <goal>process</goal> </goals> <configuration> <!-- 指定JPA注解处理器,输出目录要对应 --> <outputDirectory>target/generated-sources/apt</outputDirectory> <processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor> </configuration> </execution> </executions> </plugin> </plugins> </build>
3. 打开Eclipse的注解处理开关
Eclipse默认是关闭APT支持的,得手动打开:
- 右键项目 → Properties → Java Compiler → Annotation Processing
- 勾选Enable annotation processing
- 切到Factory Path标签,点Add External JARs,找到本地Maven仓库里的
querydsl-apt-${version}.jar加进去 - 点Apply and Close就行
4. 把生成目录标记为源目录
Q类会生成在target/generated-sources/apt下面,但Eclipse不会自动把这个目录当成源码目录,得手动加:
- 右键项目 → Build Path → Add Folder
- 展开
target文件夹,勾选generated-sources/apt,点OK
5. 手动触发Maven构建
配置都弄好后,手动跑一遍Maven构建触发生成:
- 在Eclipse的Maven Projects视图里,右键项目 → Run As → Maven clean
- 接着跑Maven compile
要是还没生成,记得检查你的实体类是不是加了@Entity注解哦!Querydsl只会给带JPA实体注解的类生成Q类。
内容的提问来源于stack exchange,提问作者Harshal Patil
相关产品推荐
相关产品推荐

