1

我在 springboot 项目中使用 gradle6+、openjdk11 和 querydsl 4.2.x,面临如下问题

引起:java.lang.ClassNotFoundException:com.querydsl.apt.jpa.JPAAnnotationProcessor

在 gradle 脚本中,已添加

annotationProcessor 'com.querydsl:querydsl-apt:4.2.1:jpa'
    annotationProcessor "javax.annotation:javax.annotation-api:1.3.1"
    annotationProcessor 'org.springframework.boot:spring-boot-starter-data-jpa'
    compile("com.querydsl:querydsl-core:${project.querydsl}")
    compile("com.querydsl:querydsl-jpa:${project.querydsl}")

有人可以让我帮助解决问题吗?

4

2 回答 2

1

在这里,我只需要三行(我已经spring-boot-starter-data-jpa在项目中使用过):

implementation 'org.springframework.boot:spring-boot-starter-data-jpa:2.5.6'
annotationProcessor 'org.springframework.boot:spring-boot-starter-data-jpa:2.5.6'
implementation 'com.querydsl:querydsl-jpa:5.0.0'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jpa'
于 2021-11-03T18:56:34.300 回答
1

我在 gradle 构建文件中解决并能够在没有这个 JPAProcessor 的情况下编译 QClasses。看起来是最新版本,在编译 QClass 时我们不需要这个 JPAProcessor。只需将注释处理器作为依赖项就可以了。Java 编译器能够创建 QClasses。我刚用

annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")
annotationProcessor group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: project.springBoot
    annotationProcessor group: 'javax.annotation', name: 'javax.annotation-api', version: '1.3.2'
    annotationProcessor group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.1-api', version: '1.0.2.Final'
于 2021-03-08T05:39:56.643 回答