728x90
반응형
🟡 QueryDSL이란 ?
QueryDSL 은 Criteria 처럼 JPQL 빌더 역할을 한다.
🟢 QueryDSL 의 장점
- 코드 기반이면서 단순하고 사용하기가 쉽다.
- 그리고 작성한 코드도 JPQL 과 거의 비슷해서 한눈에 들어온다.
- QueryDSL 과 Criteria 를 비교하면 Criteria 는 너무 복잡하다.
QueryDSL 은 JPA 표준은 아니고 오픈소스 프로젝트다.
이것은 JPA 뿐만 아니라 JDO, 몽고DB, Java Collection, Lucene, Hiberate Search 도 거의 같은 문법으로 지원한다.
현재 스프링 데이터 프로젝트가 지원할 정도로 많이 기대되는 프로젝트이다.
대부분 Criteria 보다 QueryDSL 을 더 선호한다.
🟢 QueryDSL 로 작성한 코드
// 준비
JPAQuery query = new JPAQuery (em);
QMember member = QMember.member;
// 쿼리
List<Member> members = query.frim(member).where(member.esername.eq("kim")).list(member);
QueryDSL 을 사용하는 예제는 특별한 설명을 하지 않아도 코드만으로 대부분 이해가 될 것이다.
QueryDSL도 어노테이션 프로세서를 사용해서 쿼리 전용 클래스를 만들어야 한다.
QMember 는 Member 엔티티 클래스를 기반으로 생성한 QueryDSL 쿼리 전용 클래스이다.
728x90
반응형
'개발중 > Java Persistence API (JPA)' 카테고리의 다른 글
JPA - 파라미터 바인딩 (0) | 2021.07.01 |
---|---|
🟡 Criteria이란 ? (0) | 2021.07.01 |
🟡 JPQL 이란 ? (0) | 2021.07.01 |
객체 지향 쿼리 소개 (0) | 2021.07.01 |
Java 객체/ 기본값 타입의 특징 (0) | 2021.06.30 |