J'essaie d'intégrer QueryDSL, Gradle et Springboot dans les versions du titre. J'ai ajouté annotationProcessors à gradle mais Intellij ne génère toujours pas les QClasses. J'ai essayé des suggestions de la communauté pour utiliser le plugin "gradle.plugin.com.ewerk.gradle.plugins: querydsl-plugin" mais cela n'a pas aidé.
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")
}
Je vais vous donner ma configuration de travail:
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}"
}
en utilisant Gradle 5.2 +
Vous devez fournir un processeur d'annotation concret ': jpa'
annotationProcessor("com.querydsl:querydsl-apt:4.2.1:jpa")
cela devrait fonctionner:
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 ne fonctionne pas avec Gradle 5. Vous pouvez vérifier cette autre question et problèmes de plug-in pour plus d'informations.
Il semble que certaines personnes aient réussi à le faire fonctionner avec des solutions de contournement telles que celles de la question liée, mais cela n'a pas été mon cas. Mon équipe a finalement dû utiliser HQL.