JPA

queryDsl 기본 조인에 대해

쿠카이든 2022. 2. 14. 12:19
728x90
  • (querydsl) 조인 - 기본 조인
    • 조인의 기본 문법은 첫 번째 파라미터에 조인 대상을 지정하고, 두 번째 파라미터에 별칭(alias)으로 사용할 Q 타입을 지정합니다.
    • join(조인 대상, 별칭으로 사용할 Q타입)
  • 예제
/**
 * 팀 A에 소속된 모든 회원 조회
 */
@Test
public void join() throws Exception {
    QMember member = QMember.member;
    QTeam team = QTeam.team;
    
    List<Member> result = queryFactory
        .selectFrom(member)
        .join(member.team, team)
        .where(team.name.eq("teamA"))
        .fetch();
        
    assertThat(result)
        .extracting("username")
        .containsExactly("member1", "member2");
}
  • join() , innerJoin() : 내부 조인(inner join)
  • leftJoin() : left 외부 조인(left outer join)
  • rightJoin() : rigth 외부 조인(rigth outer join)
  • JPQL의 on 과 성능 최적화를 위한 fetch 조인 제공합니다.
    • 즉시로딩으로 Member, Team SQL 쿼리 조인으로 한번에 조회
    • 사용 방법 - join(), leftJoin() 등 조인 기능 뒤에 fetchJoin() 이라고 추가
    • 예) .join(member.team, team).fetchJoin()
728x90