Join
- 현업에서 제일 자주보는 친구!
@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");
}
- 회원(Member)와 팀(Team)은 관계가 맺어져있고
- N:1의 관계
- 하나의 회원은 한 팀에 소속될 수 있고
- 한 팀에는 여러 회원이 속할 수 있다.
- 팀(1) : 회원(N) 이렇게 되는 것
- 한팀에 여러 회원 이런 관계이다.
- 회원과 팀을 조인하는데
- 주체는 회원이고, 회원은 하나의 팀을 가지므로, 데이터는 뻥튀기 되지 않는다.
- 그래서 join을 할 때 join(연관관계있는 조인 대상(fk)라고 생각하면 좋을 것 같다, 별칭 q타입)
- where 쪽에 조건 추가
조인 종류
- join(), innerJoin() : 내부 조인(inner join)
- leftJoin() : left 외부 조인(left outer join)
- rightJoin() : right 외부 조인(right outer join)
'Spring관련 기술 > JPA' 카테고리의 다른 글
Querydsl - 정렬 (0) | 2024.01.16 |
---|---|
Querydsl - 결과 조회 (0) | 2024.01.16 |
Querydsl - 검색 조건 쿼리 (0) | 2024.01.16 |
Querydsl - 기본 QType 활용 (0) | 2024.01.16 |
JPQL vs Querydsl (0) | 2024.01.16 |