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