스프링 부트 2.6 이상부터는 Querydsl 5.0을 사용해야합니다. 다음과 같이 build.gradle을 설정하면 됩니다.
buildscript{ ext{ queryDslVersion = "5.0.0" } }
dependencies 부분에 해당 version을 그대로 써도 되지만 버전 관리를 더 쉽게 하기위해서 위와 같은 방법으로 queryDslVersion을 선언하여 저장하였습니다.
plugins{ ... id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" ... }
아래 부분에 querydsl{..} 부분을 사용하기 위해서는 플러그인을 추가해주어야합니다.
dependencies{ ... implementation "com.querydsl:querydsl-jpa:${queryDslVersion}" implementation "com.querydsl:querydsl-apt:${queryDslVersion}" }
위에서 설정한 Version을 담고 있는 변수 queryDslVersion을 ${queryDslVersion} 형식으로 넣어준다.
⚠️주의‼️
" "가 아니라 ' '로 감싸면 ${queryDslVersion} 부분이 인식하지 못한다. ⚠️
def querydslDir = "$buildDir/generated/querydsl"
querydsl{
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets{
main.java.srcDir querydslDir
}
compileQuerydsl{
options.annotationProcessorPath = configurations.querydsl
}
configurations{
conpileOnly{
extendsFrom annotationProcessor
}
querydsl.extendsFrom compileClasspath
}
위에서 말한거처럼 플러그인을 설정한 이유는 추가 설정을 해주기 위해서입니다.
querydslDir = "$buildDir/generated/querydsl" QType Entity들이 생길 주소 경로입니다.
(* $buildDir은 project의 build 드렉토리 경로입니다.)
compileQuerydsl를 통해서 빌드를 시켜서 Entity들에 대해서 QType의 클래스가 생깁니다. 생기지 않거나 이미 build를 했었더라면 clean을 먼저 실행시키고 compileQuerydsl를 실행시켜주세요
링크
Inflearn의 김영한님 실전! Querydsl 강의입니다.