select m.username -> 상태 필드
from Member m
join m.team t -> 단일 값 연관 필드
join m.orders o -> 컬렉션 값 연관 필드
where t.name = '팀A'
상태 필드(state field): 경로 탐색의 끝, 탐색X
단일 값 연관 경로: 묵시적 내부 조인(inner join) 발생, 탐색O
컬렉션 값 연관 경로: 묵시적 내부 조인 발생, 탐색X • FROM 절에서 명시적 조인을 통해 별칭을 얻으면 별칭을 통 해 탐색 가능
탐색 X
select t.members From Team t (t.members.~~ 이게 안됨)
탐색 O
select m.username From Team.t join t.members m
💡묵시적 내부조인!
String query = "select m.team From Member m";
List<Team> result = em.createQuery(query, Team.class).getResultList();
위 쿼리문을 보면 단순 m.team 으로 접근 한 것 같지만
실제로는 아래처럼 Member와 Team의 조인을 통해 가져온다
그러므로 묵시적인 내부 조인이 발생하게 웬만해서 짜면 안됨!! 무수한 조인은 성능 튜닝에 지대한 영향을 준다.
