build.gradle
// QueryDSL 5.0이상 부터는 아래 옵션 추가 필요
plugins {
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"
}
dependencies {
implementation "com.querydsl:querydsl-jpa:5.0.0"
implementation "com.querydsl:querydsl-apt:5.0.0"
}
// Qtype 생성 경로
def querydslDir = "$buildDir/generated/querydsl"
querydsl {
jpa = true
querydslSourcesDir = querydslDir
}
sourceSets {
main.java.srcDir querydslDir
}
compileQueryDsl {
options.annoationProcessorPath = configurations.querydsl
}
configurations {
compileOnly {
extendsForm annoationProcessor
}
querydsl.extendsForm compileClasspath
}
fetchResults(), fetchCount()
가 deprecated됨fetchResult()
는 QueryResults.getOffset()
또는 QueryResults.getLimit()
에 의존하지 않는 경우 fetch()
를 대신 사용해야 성능이 더 우수하며 모든 방언에 대해 카운트 쿼리를 제대로 생성할 수 없음fetchCount()
는 일부 QueryDSL 모듈이 카운트 쿼리를 사용하여 fetchCount를 최적화하지는 않을 수 있음fetchResults()
의 경우 QueryResults를 사용하고, 여기서 count 쿼리를 사용