오봉이와 함께하는 개발 블로그
Querydsl - 조인 (페치 조인) 본문
728x90
조인 - 페치 조인
페치 조인은 SQL에서 제공하는 기능은 아니다.
SQL조인을 활용해서 연관된 엔티티를 SQL 한번에 조회하는 기능이다.
주로 성능 최적화에 사용하는 방법이다.
페치 조인 미적용
지연로딩으로 Member, Team SQL 쿼리 각각 실행
@PersistenceUnit
EntityManagerFactory emf;
@Test
void fetchJoinNo() {
em.flush();
em.clear()
// LAZY 했기 때문에 Team은 조회하지 않는다.
Member findMember = queryFactory
.selectFrom(member)
.where(member.username.eq("member1"))
.fetchOne()
boolean loaded = emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam()); // Membe객체에서 Team이 들어가 있는지 확인하는 메소드
assertThat(loaded).as("페치 조인 미적용").isFalse();
}
페치 조인 적용
즉시로딩으로 Member, Team SQL 쿼리 조인으로 한번에 조회
@Test
void fetchJoinUse() {
Member findMember = queryFactory
.selectFrom(member)
.join(member.team, team).fetchJoin()
.where(member.username.eq("member1"))
.fetchOne()
boolean loaded = emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam()); // Membe객체에서 Team이 들어가 있는지 확인하는 메소드
assertThat(loaded).as("페치 조인 적용").isTrue();
}
- 사용방법
- join(), leftJoin() 등 조인 기능 뒤에 fetchJoin() 이라고 추가하면 된다.
인프런 김영한 지식공유자님 강의 : 실전! Querydsl
728x90
'BE > JPA' 카테고리의 다른 글
Querydsl - Case 문 (0) | 2022.09.18 |
---|---|
Querydls - 서브 쿼리 (0) | 2022.09.18 |
Querydsl - 조인 (on 절) (0) | 2022.09.17 |
Querydsl - 조인 (기본 조인) (0) | 2022.09.17 |
Querydsl - 집합 (0) | 2022.09.16 |
Comments