1️⃣ QueryDSL 이란?
- JPQL을 타입 안전한 자바 코드로 변환해주는 라이브러리
- 조건 쿼리를 작성할 때 오타나 문법 오류를 컴파일 단계에서 방지
2️⃣QueryDSL 설정 방법
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
// Q파일 생성용 설정
tasks.withType(JavaCompile).configureEach {
options.annotationProcessorPath = configurations.annotationProcessor
// Q파일 인식 경로 추가
sourceSets {
main.java.srcDirs += 'build/generated/sources/annotationProcessor/java/main'
}
}
3️⃣ QueryDSL 기본 예제
List<User> users = queryFactory.selectFrom(QUser.user)
.where(QUser.user.name.eq("홍길동"))
.fetch();
4️⃣ QueryDSL 동적 쿼리 예제
BooleanBuilder builder = new BooleanBuilder();
if(name != null) builder.and(QUser.user.name.eq(name));
if(age != null) builder.and(QUser.user.age.goe(age));
List<User> users = queryFactory.selectFrom(QUser.user)
.where(builder)
.fetch();