최신 자바 백엔드 기술
사용 예제
1. build.gradle을 이용하여 QueryDSL 관련 의존성 추가 -> 빌드하여 Q클래스 자동생성
dependencies {
// QueryDSL 적용을 위한 의존성 (SpringBoot3.0 부터는 jakarta 사용해야함)
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"
...
}
2.Q클래스를 사용하여 쿼리 작성
import static com.sparta.blog.blog.entity.QBlog.blog; //생성된 Q클래스를 import
...
public Page<Blog> search(BlogSearchCond cond, Pageable pageable) {
var query = jpaQueryFactory
.selectFrom(blog)
.where(
blog.title.contains(cond.getTitle())
).offset(pageable.getOffset()).limit(pageable.getPageSize());
query.orderBy(blog.createdAt.desc());
var blogs = query.fetch();
...
Q클래스 : QueryDSL 라이브러리를 사용할 때 자동으로 생성되는 클래스로, 엔티티 클래스를 기반으로 쿼리 작성을 도와주는 도구
유익한 글이었습니다.