QueryDSL

JPA 쓰는사람중엔 표준인 Criteria보다 QueryDSL을 더 많이 사용 한다고 한다.

Posted by Jong-in Kim on 2017. 1. 23 오전 9:53

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


 

'카테고리'의 글 목록