본문 바로가기

개발중/Java Persistence API (JPA)

🟡 QueryDSL이란 ?

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