QueryDSL

JPA
  1. 1. 1 QueryDSL 소개
  2. 2. 1.1 장점
  3. 3. 1.2 작동 방식
  4. 4. 1.3 maven 셋팅
  5. 5. 1.4 쿼리 타입 생성
  6. 6. 1.5 쿼리 사용
  7. 7. 1.6 기능 정리

1 QueryDSL 소개

  • JPQL을 코드로 작성할 수 있도록 도와주는 빌더 API
  • JPA 크리테리아에 비해서 편리하고 실용적임
  • 쿼리를 문자가 아닌 코드로 작성해도, 쉽고 간결하며 그 모양도 쿼리와 비슷하게 개발 할 수 있는 프로젝트가 바로 QueryDSL 이다.
  • 오픈소스

    1.1 장점

  • 문자가 아닌 코드로 작성

  • 컴파일 시점에 오류 발견
  • 코드 자동완성
  • 단순함, 쉬움: 코드 모양이 JPQL과 거의 흡사.
  • 동적 쿼리

1.2 작동 방식

1.3 maven 셋팅

1.4 쿼리 타입 생성

메이븐 QueryDSL 설정을 하고 나서 mvn compile 명령어를 실행 하면

QueryDSL에서 사용할수 있는 Q타입 생성

JPQL - Entity

QueryDSL - QEntity

자동 생성된 쿼리 타입(Q)

1.5 쿼리 사용

조인

페이징

동적쿼리

1.6 기능 정리

  • from
  • innerJoin, join, leftJoin, fullJoin, on
  • where (and, or, allOf, anyOf)
  • groupBy
  • having
  • orderBy (desc, asc)
  • limit, offset, restrict(limit + offset) (Paging)
  • list
  • listResults (list + Paging Info(totalCount))
  • iterate
  • count
  • singleResult, uniqueResult