You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:18:16