경로 표현식

 .(점)을 찍어 객체 그래프를 탐색하는 것

 

 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

+ Recent posts