QueryDsl은 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해주는 프레임워크이다.
JPA가 기본적으로 제공해주는 기능을 사용하더라도, 원하는 조건의 데이터를 수집하기 위해서는 필연적으로 JPQL을 작성하게 된다. 간단한 로직을 구현할 때는 상관없지만 복잡한 로직의 경우 쿼리가 길어진다. 또한 쿼리를 실행하기 전까지 에러를 발견할 수 없다.
💡 버전
springboot 3.0.1
java 17
래퍼런스를 참조해서 querydsl denpendency를 추가하려 하는데 springboot 3.0 이상 버전에서는 기존과는 다르게 설정해주어야했다.
build.gradle
dependencies {
//...
//querydsl dependencies 추가(스프링부트 3.0 이상)
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"
}
QueryDslConfig
dependencies {
//...
//querydsl dependencies 추가(스프링부트 3.0 이상)
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"
}