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

Spring Boot 3+Querydsl 5.0.0 Gradle构建报错:无法加载jakarta.persistence.Entity

解决Spring Boot 3.1.4 + QueryDSL 5.0.0构建报错NoClassDefFoundError: jakarta/persistence/Entity

问题原因

编译阶段QueryDSL的APT注解处理器找不到JPA的Entity注解类,核心原因有两点:

  • querydsl-apt被错误配置为implementation依赖,它仅需作为注解处理器使用,无需加入项目编译依赖
  • 注解处理器的classpath与项目编译classpath相互独立,spring-boot-starter-data-jpa中的JPA API依赖无法自动传递到注解处理器环境中

解决方案

修改build.gradle的依赖配置如下:

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.1.4'
}

java {
    sourceCompatibility = '17'
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-validation'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
    // 仅保留注解处理器配置,移除implementation类型的querydsl-apt
    annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
    // 显式将JPA API加入注解处理器classpath
    annotationProcessor 'jakarta.persistence:jakarta.persistence-api'
}

修改说明

  • 移除implementation 'com.querydsl:querydsl-apt:5.0.0:jakarta':APT是生成QueryDSL查询类的工具,无需作为项目编译或运行依赖
  • 添加annotationProcessor 'jakarta.persistence:jakarta.persistence-api':确保注解处理器在编译时能访问到JPA相关注解类
  • 保留querydsl-jpa的implementation依赖:这是项目运行和编译时必需的QueryDSL JPA核心库

内容的提问来源于stack exchange,提问作者user22824900

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:35:03