-
JPA 경로표현식BackEnd/JPA 2021. 4. 27. 20:43
경로 표현식이란
.(점) 을 찍어 객체 그래프 를 탐색 하는 것을 말한다.
상태 필드, 단일값 연관 필드, 컬렉션값 연관 필드가 있다.
이들은 내부적으로 동작하는 방식, 결과가 달라져 구분해야한다.
특징 탐색 상태 필드 단순히 값만 저장하기 위한 필드 경로 탐색의 끝 x 단일값 연관 필드 연관관계를 위한 필드, 타킷이 엔티티일 때
@ManyToOne, OneToOne묵시적 내부 조인 o 컬렉션값 연관 필드 컬렉션을 위한 필드 묵시적 내부 조인 x | o(가능) 상태필드
select m.username from Member m
단일값 연관 필드
select m.team from Member m 탐색 -> select m.team.name from Member m
select o.member.team from Order o 성공하지만 묵시적 조인이 2번이나 일어난다..
컬렉션 값 연관 필드
아래 team 에 members는 Team 클래스에 있는 List<Member> 컬렉션이다.
그래서 member 에 대한 정보는 더 탐색할 수 없고 해봐야 List의 size 만 조회가능하다.
select t.members from Team t 탐색 -> select t.members.size from Team t
하지만 from 절에서 명시적 조인을 추가해 별칭을 얻으면 별칭 통해 탐색 가능.
select m.username from Team t join t.members m;
묵시적 조인은 항상 내부조인이다.
경로 탐색은 주로 select,where 절에서 사용하지만 묵시적 조인으로 인해 sql 의 from 절 (join)에 영향을 준다.
실무에서 명시적 조인을 하는게 읽기도 좋고 나중에 SQL 튜닝이 쉽다.
www.inflearn.com/course/ORM-JPA-Basic/dashboard
반응형'BackEnd > JPA' 카테고리의 다른 글
JPA 강의 포인트 (0) 2021.12.15 JPA > Fetch Join , BatchSize (0) 2021.04.27 JPA > JPQL, 프로젝션 (0) 2021.04.27 JPA > 값 타입 (0) 2021.04.25 JPA > 영속성 전이와 고아객체 (0) 2021.04.25