🧩 JPQLQuery

정의

JPQLQueryQuerydsl에서 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 쿼리를 다룰 때의 핵심 기반 개념 중 하나다.

연결문서

댓글남기기