QueryDSL

기본 Q 생성

쿠카이든 2022. 6. 17. 11:25
728x90
  • 쿼리 타입(Q)은 사용하기 편하도록 아래와 같이 기본 인스턴스를 보관하고 있다.
  • 하지만 같은 엔티티를 조인하거나 같은 엔티티를 서브쿼리에 사용하면 같은 별칭이 사용되므로 이때는 별칭을 직접 지정해서 사용해야 한다.
public class QMember extends EntityPathBase<Member> {

    public static final QMember member = new QMember("member1");
    ...
}
QMember qMember = new QMember("m");  //직접 지정
QMember qMember = QMember.member;  //기본 인스턴스 사용

쿼리 타입의 기본 인스턴스를 사용하면 아래와 같이 import static을 활용해서 코드를 더 간결하게 작성할 수 있다.

import static jpabook.jpashop.domain.QMember.member; //기본 인스턴스

public void basic() {

    EntityManager em = emf.createEntityManager();
    
    JPAQuery query = new JPAQuery(em);
    List<Member> members = 
        query.from(member)
            .where(member.name.eq("회원1"))
            .orderBy(member.name.desc())
            .list(member);
}

 

출처 : JAVA 표준 ORM JPA 프로그래밍 (저자: 김영한)

728x90

'QueryDSL' 카테고리의 다른 글

(QueryDSL) 동적쿼리(feat. BooleanBuilder)  (0) 2022.06.18
(JPA)프로젝션 feat.QueryDSL..  (0) 2022.06.18
QueryDsl 조인 종류  (0) 2022.06.17
페이징과 정렬(feat.queryDSL)  (0) 2022.06.17
검색 조건 쿼리(feat. QueryDSL)  (0) 2022.06.17