경로 표현식
- . (점)을 플로팅하여 개체 그래프 순회
경로 표현 용어집
- 상태 필드(상태 필드)
- 단순히 값을 저장하는 필드
(예: m.사용자 이름)
- 단순히 값을 저장하는 필드
- 연관 필드(연관 분야)
- 연관 분야
- 고유한 값 매핑 필드
: @ManyToOne, @OneToOne, 대상은 엔터티임
(예: 엠팀) - 컬렉션 값과 관련된 필드
: @OneToMany, @ManyToMany, 대상이 컬렉션인 경우
(예: 주문과 함께)
- 고유한 값 매핑 필드
- 연관 분야
경로 표현의 특징
- 상태 필드(상태 필드)
- 경로 검색 종료
- 탐색 X
- 고유한 값 매핑 경로
- 암시적 내부 조인 발생
- 검색하거나
- 컬렉션 값 매핑 경로
- 암시적 내부 조인 발생
- 탐색 X
- FROM 절의 명시적 링크를 통해 별칭을 얻은 경우 별칭을 통한 탐색이 가능합니다.
상태 필드 경로 순회
- JPQL: 멤버 m에서 m.username, m.age를 선택합니다.
- SQL: 멤버 m에서 m.username, m.age 선택
단일 값 매핑 경로 순회
- JPQL: 선택 o. 회원 주문 또는
- SQL:
m을 선택하세요.*
주문 또는
o.member_id = m.id의 내부 조인 멤버 m
명시적 연결, 암시적 연결
- 명시적 조인: 조인 키워드 직접 사용
- 멤버 m에서 m 선택 m.팀 t에 합류
- 암시적 조인: SQL 조인은 경로 식을 통해 암시적으로 발생합니다.
(내부 조인만 해당)- 선택하다 엠팀 멤버 m에서
경로 표현 예
- 주문 o -> 성공에서 o.member.team 선택
- 팀 -> 성공에서 t.members 선택
- 선택하다 t.회원.사용자명 팀 t에서 -> 오류
- Team t에서 m.username 선택 t.members 가입 m -> 성공
경로 순회를 사용한 암시적 조인에 대한 주의 사항
- 항상 내부에 연결
- 컬렉션은 명시적 링크에 의한 경로 통과의 끝에서 별칭을 지정해야 합니다.
- 경로 순회는 주로 SELECT 및 WHERER 절에서 사용되지만 암시적 조인으로 인해 SQL의 FROM(JOIN) 절에 영향을 미칩니다.
관행
- 가능할 때마다 암시적 조인 대신 명시적 조인을 사용합니다.
- 조인은 SQL 최적화의 중요한 부분입니다.
- 암시적 링크는 링크가 무엇인지 한 눈에 보기 어렵게 만듭니다.