경로 표현식
.(점)을 찍어 객체 그래프를 탐색하는 것
select m.username -> 상태필드
from Member m
join m.team t -> 단일 값 연관 필드
join m.orders o -> 컬렉션 값 연관 필드
>>> 내부적으로 동작 방식이 달라진다. 그래서 이 3가지를 꼭 구분해서 잘 알아야함.
where t.name = '팀A'
상태 필드(state field): 단순히 값을 저장하기 위한 필드 (ex: m.username)
연관 필드(asssociation field): 연관관계를 위한 필드
- 단일 값 연관 필드
@ManyToOne, @OneToOne, 대상이 엔티티 (ex: m.team)
- 컬렉션 값 연관 필드
@OneToMany, @ManyToMany, 대상이 컬렉션(ex:m.orders)
★경로 표현식 특징
상태필드 : 경로 탐색의 끝, 탐색x
단일 값 연관 경로: ★묵시적 내부조인(inner join)발생, 탐색o
-(실무) 묵시적 내부조인이 발생하게 짜면 안된다!!
- 성능 튜닝에 지대한 영향을 준다.
컬렉션 값 연관 경로: 묵시적 내부조인 발생, 탐색x
- FROM 절에서 명시적 조인을 통해 별칭을 얻으면 별칭을 통해 탐색 가능
select m From Team t join t.members m;
>>>(영한쌤 팁) 실무에서는 이거 다 별루... 묵시적 조인을 쓰지말자. 그냥 명시적 조인을 쓰자!!
명시적조인: join 키워드 직접사용
[출처]- 인프런 김영한 '자바 ORM 표준 JPA 프로그래밍- 기본편] 강의듣고 정리
'Java Web > JPA' 카테고리의 다른 글
JPQL 문법(4) (0) | 2022.05.03 |
---|---|
JPQL- 페치 조인(fetch join) (0) | 2022.05.02 |
JPQL문법(2) (0) | 2022.04.27 |
JPQL문법 (0) | 2022.04.24 |