페치조인 1 - 기본
실무에서 엄청나게 중요함!!!!
- SQL 조인 종류 X
- JPQL에서 성능 최적화를 위해 제공하는 기능
- 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능
- join fetch 명령어 사용
-
페치 조인 ::= [LEFT [OUTER] INNER ] JOIN FETCH 조인 경로
엔티티 페치 조인
- 회원을 조회 하면서 연관된 팀도 함께 조회 (SQL 한 번에)
- SQL을 보면 회원 뿐만 아니라 팀(T.* )도 함께 SELCT
- [JPQL] select m from Member m join fetch m.team
- [SQL] SELECT M.* , T.* FROM MEMBER M INNER JOIN TEAM T ON M.TEAM_ID = T.ID

컬렉션 페치 조인
- 일대 다 관계, 컬렉션 페치 조인
- [JPQL] select t from Team t join fetch t.members where t.name = ‘팀A’
- [SQL]
SELECT T.* , M.*
FROM TEAM A INNER JOIN MEMBER M ON T.ID = M.TEAM_ID WHERE T.NAME = ‘팀A’
페치 조인과 DISTINCT
- SQL의 DISTINCT는 중복된 결과를 제거하는 명령
- JPQL의 DISTINCT 2가지 기능 제공
-
- SQL 에 DISTINCT 를 추가
-
- 애플리케이션에서 엔티티 중복 제거
-

페치 조인과 일반 조인의 차이
- JPQL은 결과를 반환할 때 연관관계 고려 X
- 단지 SELECT 절에서 지정한 엔티티만 조회할 뿐
- 여기서는 팀 엔티티만 조회하고, 회원 엔티티는 조회 X \
- 페치 조인을 사용할 때만 연관된 엔티티도 함께 조회(즉시 로딩)
- 페치 조인은 객체 그래프를 SQL 한번에 조회하는 개념
댓글남기기