关于Spring Boot:Java 11 QueryDSL 4 Gradle 5 SpringBoot 2.1-不生成QClass

Java 11 + QueryDSL 4 + Gradle 5 + SpringBoot 2.1- not generating QClasses

我正在尝试从标题的版本中集成QueryDSL,Gradle和Springboot。
我将gradleProcessors添加到gradle中,但是Intellij仍然没有生成QClasses。我尝试了来自社区的建议以使用插件a?gradle.plugin.com.ewerk.gradle.plugins:querydsl-plugina?
但这没有帮助。

1
2
3
4
5
6
7
8
9
10
11
dependencies{
   annotationProcessor("org.projectlombok:lombok:1.18.4")
   annotationProcessor("com.querydsl:querydsl-apt:4.2.1")
   annotationProcessor("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")

   compileOnly("org.projectlombok:lombok:1.18.4")
   implementation("com.querydsl:querydsl-jpa:4.2.1")
   implementation("com.querydsl:querydsl-apt:4.2.1:jpa")
   implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")
   implementation("org.springframework.boot:spring-boot-starter-web:2.1.1.RELEASE")
}


我将给您我的工作配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ext {
    queryDslVersion = '4.2.1'
    lombokVersion = '1.8.6'
}
// https://stackoverflow.com/questions/42441844/annotation-processor-in-intellij-and-gradle/54611475#54611475
compileJava {
    options.annotationProcessorPath = configurations.annotationProcessor
}

dependencies {
  // ...

    compile(
           "com.querydsl:querydsl-core:${queryDslVersion}",
           "com.querydsl:querydsl-jpa:${queryDslVersion}"
    )

    compileOnly"org.projectlombok:lombok:${lombokVersion}"

    annotationProcessor"com.querydsl:querydsl-apt:${queryDslVersion}:jpa",
           "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final",
           "javax.annotation:javax.annotation-api:1.3.2",
           "org.projectlombok:lombok:${lombokVersion}"
}

使用Gradle 5.2


您需要提供具体的注释处理器':jpa'

1
annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")

应该运行的

1
2
3
4
5
6
7
8
9
10
dependencies{
   annotationProcessor("org.projectlombok:lombok:1.18.4")
   annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")
   annotationProcessor("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")

   compileOnly("org.projectlombok:lombok:1.18.4")
   implementation("com.querydsl:querydsl-jpa:4.2.1")
   implementation("org.springframework.boot:spring-boot-starter-data-jpa:2.1.1.RELEASE")
   implementation("org.springframework.boot:spring-boot-starter-web:2.1.1.RELEASE")
}


QueryDSL不适用于Gradle5。您可以查看其他问题和插件问题以获取更多信息。

似乎有些人设法使它与变通方法一起工作,例如链接问题中的变通方法,但这不是我的情况。我的团队最终不得不求助于HQL。