Spring Boot Querydsl setting
Querydsl 사용 이유
프로젝트에서 qeurydsl을 사용해야 하는 기능이 있었다.
동적 필터링이었다. 가격과 여러 커피의 특징들로 검색하는 기능이다. 여러 검색 조건을 동시에 적용해야 하다 보니 qeurydsl이 필요했다.
Spring Boot 버전
우리 프로젝트의 spring boot 버전은 3.2.3이다.
Querydsl 설정부
build.gradle 파일에 다음과 같이 추가한다.
dependencies{
...
//querydsl 추가
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
...
}
// Querydsl 설정부
def generated = 'src/main/generated'
// querydsl QClass 파일 생성 위치를 지정
tasks.withType(JavaCompile) {
options.getGeneratedSourceOutputDirectory().set(file(generated))
}
// java source set 에 querydsl QClass 위치 추가
sourceSets {
main.java.srcDirs += [ generated ]
}
// gradle clean 시에 QClass 디렉토리 삭제
clean {
delete file(generated)
}
또한 Qfile은 모두 .gitignore에 추가해준다.
### querydsl Q files ###
src/main/generated/
Compile
- Gradle → Tasks → build → clean
- Gradle → Tasks → other → compileJava
- 컴파일하면 Q파일이 생성된다.
참고 : 블로그