plugins {
id("com.ewerk.gradle.plugins.querydsl") version "1.0.10"
id("java")
}
dependencies {
implementation("com.querydsl:querydsl-jpa:5.1.0")
annotationProcessor("com.querydsl:querydsl-apt:5.1.0:jpa") // Qν΄λμ€ μμ±μ©
annotationProcessor("jakarta.persistence:jakarta.persistence-api:3.1.0")
annotationProcessor("jakarta.annotation:jakarta.annotation-api:2.1.1")
}
val querydslDir = "$buildDir/generated/querydsl"
sourceSets {
main {
java {
srcDir(querydslDir)
}
}
}
tasks.withType<JavaCompile> {
options.annotationProcessorGeneratedSourcesDirectory = file(querydslDir)
}
π‘ μ£Όμ: Kotlinμ μ°μ§ μλλ€λ©΄ build.gradle (Groovy DSL)λ‘ μλ €μ£ΌμΈμ. ν΄λΉ λ²μ λ μ 곡 κ°λ₯ν©λλ€.
@Entity
public class Member {
@Id
@GeneratedValue
private Long id;
private String username;
private int age;
@ManyToOne(fetch = FetchType.LAZY)
private Team team;
}
@Entity
public class Team {
@Id
@GeneratedValue
private Long id;
private String name;
}
β ./gradlew clean build λλ ./gradlew compileJava λ₯Ό μ€ννλ©΄ QMember, QTeam ν΄λμ€κ° build/generated/querydsl λλ ν 리μ μλ μμ±λ©λλ€.
QMember.java: username, age λ±μ νλκ° Java μ½λλ‘ ννλ¨QTeam.java: name λ±μ νλ ν¬ν¨