JPQLQuery
🧩 JPQLQuery
정의
JPQLQuery는 Querydsl에서 JPA용 JPQL 기반 쿼리를 표현하는 인터페이스이다. 엔티티와 속성을 기준으로 조회 조건을 만들고, JPA에서 실행 가능한 형태로 변환한다.
Querydsl로 JPA 쿼리를 작성할 때 쿼리 객체를 체이닝 방식으로 구성하는 데 사용한다.
🧩 역할
- JPA용 쿼리를 객체로 표현한다
- 엔티티와 속성을 기준으로 조회 조건을 만든다
- 체이닝 방식으로 조회, 정렬, 페이징을 구성한다
- JPAQueryFactory와 함께 사용된다
🛠 사용법
기본 조회
List<User> users = queryFactory
.selectFrom(user)
.where(user.status.eq("ACTIVE"))
.fetch();
조건 추가
JPQLQuery<User> query = queryFactory
.selectFrom(user)
.where(user.name.contains("kim"));
정렬과 함께 사용
List<User> users = queryFactory
.selectFrom(user)
.where(user.status.eq("ACTIVE"))
.orderBy(user.id.desc())
.fetch();
🧩 특징
- 엔티티 중심으로 쿼리를 구성한다
- 문자열 JPQL보다 타입 안전하게 다룰 수 있다
- 조건, 정렬, 페이징을 메서드 체인으로 연결한다
- Querydsl의 다른 표현식과 함께 사용된다
⚠️ 주의사항
JPQLQuery는 Querydsl 전용 개념이다.- 테이블명이 아니라 엔티티와 속성을 기준으로 작성해야 한다.
- 복잡한 동적 조건은
BooleanExpression,BooleanBuilder와 함께 쓰는 것이 좋다. - 실제 실행은
fetch()같은 메서드로 마무리해야 한다.
📌 정리
JPQLQuery는 Querydsl에서 JPA용 쿼리를 표현하는 인터페이스다.- 엔티티 중심의 조회 조건을 체이닝 방식으로 구성할 수 있다.
- Querydsl로 JPA 쿼리를 다룰 때의 핵심 기반 개념 중 하나다.
댓글남기기