반응형
경로 표현식 : 점을 찍어 객체 그래프를 탐색
상태 필드(state field): 경로 탐색의 끝, 탐색X
• 단일 값 연관 경로: 묵시적 내부 조인(inner join) 발생, 탐색O -> 굉장히 위험하며 리팩토링하기 어려움
컬렉션 값 연관 경로: 묵시적 내부 조인 발생, 탐색X
FROM 절에서 명시적 조인을 통해 별칭을 얻으면 별칭을 통 해 탐색 가능
String jpql = "select t from Team t join fetch t.members where t.name = '팀A'";
List<Team> teams = em.createQuery(jpql, Team.class).getResultList();
for(Team team : teams) {
System.out.println("teamname = " + team.getName() + ", team = " + team);
for (Member member : team.getMembers()) {
//페치 조인으로 팀과 회원을 함께 조회해서 지연 로딩 발생 안함
System.out.println("-> username = " + member.getUsername()+ ", member = " + member); }
}
페치 조인과 일반 조인의 차이
JPQL은 결과를 반환할 때 연관관계 고려X
단지 Select 절에 지정하 ㄴ엔티티만 조회한다.
여기서는 팀 엔티티만 조회하고, 회원 엔티티는 조회X
페치 조인을 사용할때만 연관된 엔티티도 함꼐 조회( 즉시로딩 ) -> N+1문제 발생
페치조인은 객체[ 그래프를 SQL 로 한번에 조회하는 개념
반응형
'Java' 카테고리의 다른 글
[Spring] Entity를 DTO로 감싸라 (0) | 2022.06.15 |
---|---|
[JPA]JPQL (0) | 2022.05.11 |
[JPA] 값타입 (0) | 2022.05.03 |
[JPA] 상속관계 매핑 (1) | 2022.04.10 |
[JPA] Proxy, 즉시로딩, 지연로딩 (0) | 2022.04.01 |