1) 페치 조인 미적용
@PersistenceUnit
EntityManagerFactory emf;
@Test
public void fetchJoinNo() throws Exception {
em.flush();
em.clear();
Member findMember = queryFactory
.selectFrom(member)
.where(member.username.eq("member1"))
.fetchOne();
boolean loaded =
emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam());
assertThat(loaded).as("페치 조인 미적용").isFalse();
}
2) 페치 조인 적용
@Test
public void fetchJoinUse() throws Exception {
em.flush();
em.clear();
Member findMember = queryFactory
.selectFrom(member)
.join(member.team, team).fetchJoin()
.where(member.username.eq("member1"))
.fetchOne();
boolean loaded =
emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam());
assertThat(loaded).as("페치 조인 적용").isTrue();
}
'개발이 좋아서 > QueryDSL이 좋아서' 카테고리의 다른 글
12장 조인 - case문 (0) | 2023.05.15 |
---|---|
11장 조인 - 서브 쿼리 (0) | 2023.05.15 |
9장 조인 - on절 (0) | 2023.05.15 |
8장 조인 (0) | 2023.05.12 |
7장 집합 (1) | 2023.05.12 |