QueryDSL 외부 조인 해보기

Kim Dong Kyun·2023년 2월 7일
1

Today I learned

목록 보기
41/43

예제 코드

    @Test
    public void joinOnNoRelation(){
        em.persist(new Member("teamA"));
        em.persist(new Member("teamB"));

        List<Tuple> result = queryFactory.select(member, team).from(member)
                .leftJoin(team)
                // 기존과 다르게 member.team 이 아닌 team 을 바로 left join
                // member.team 하면 join On 절에 iD값이 들어간다. id로 매칭되게 되어있음.
                .on(member.username.eq(team.name))
                // 위와 같이 하면 위 조건으로 그냥 조인함 (id 관계 없이)
                .where(member.username.eq(team.name)).fetch();

        for (Tuple tuple : result) {
            System.out.println("tuple = " + tuple);
        }

결과

위와 같이 id를 기준으로 하는 것이 아닌

on 절에 걸어둔 조건, 즉 username = teamname 조건에 해당하는 친구를 가져온다.


0개의 댓글