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 |