[참고]
plugins {
id 'java'
id 'org.springframework.boot' version '3.2.5'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'study'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
**//Querydsl 추가
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"**
}
tasks.named('test') {
useJUnitPlatform()
}
**//Querydsl 추가
clean {
delete file('src/main/generated')
}**
QueryDSL은 gradle에다가 설정하고 gradle 빌드 과정 속에서 그 Q타입이라는 파일을 뽑아내야 합니다.
확인하기 위해 테스트용 엔티티를 하나 만들어줍니다.
@Entity
@Getter
public class Hello {
@Id
@GeneratedValue
private Long id;
}
그리고 Tasks → other -> compileJava 를 실행하시면 Q클래스가 정상적으로 생성됩니다. → 참고
실행하면 build.generated 에 querydsl 폴더가 생깁니다. 그 안에 QHello 란 자바파일이 생겼습니다.
Hello 엔티티를 보고 querydsl 이 Qhello 엔티티를 만들어 준 것입니다.
참고로 Tasks → other -> compileJava 를 실행을 하지 않고 그냥 빌드해도 자동으로 Q 파일이 생성됩니다. 기본적으로 자바 컴파일하는 프로세서 안에 querydsl 프로세서가 들어가게 되기 때문입니다.
터미널에서 ./gradlew compileJava 명령어로 실행해도 똑같이 Q 파일이 만들어지겠죠.