728x90
- 조인(Join)은 innerJoin(join), leftJoin, rightJoin, fullJoin을 사용할 수 있다.
- 추가로 JPQL의 on과 성능 최적화를 위한 fetch 조인도 사용할 수 있다.
- 조인의 기본 문법은 첫 번째 파라미터에 조인 대상을 지정하고, 두 번째 파라미터에 별칭으로 사용할 쿼리타입을 지정한다.
- join(조인대상, 별칭으로 사용할 쿼리 타입)
QOrder order = QOrder.order;
QMember member = Qmember.member;
QOrderItem orderItem = QOrderItem.orderItem;
query.from(order)
.join(order.member, member)
.leftJoin(order.orderItems, orderItem)
.list(order);
아래는 조인에 on을 사용했다.
query.from(order)
.leftJoin(order.orderItems, orderItem)
.on(orderItem.count.gt(2))
.list(order);
아래는 페치 조인을 사용하는 방법이다.
query.from(order)
.innerJoin(order.member, member).fetch()
.leftJoin(order.orderItems, orderItem).fetch()
.list(order);
from 절에 여러 조인을 사용하는 세타 조인 방법이다.
QOrder order = QOrder.order;
QMember member = QMember.member;
query.from(order, member)
.where(order.member.eq(member))
.list(order);
출처: JAVA 표준 ORM JPA 프로그래밍 (저자 : 김영한)
728x90
'QueryDSL' 카테고리의 다른 글
(QueryDSL) 동적쿼리(feat. BooleanBuilder) (0) | 2022.06.18 |
---|---|
(JPA)프로젝션 feat.QueryDSL.. (0) | 2022.06.18 |
페이징과 정렬(feat.queryDSL) (0) | 2022.06.17 |
검색 조건 쿼리(feat. QueryDSL) (0) | 2022.06.17 |
기본 Q 생성 (0) | 2022.06.17 |