실무에서 정말정말 중요함!!!!
페치 조인(fetch join)
- SQL 조인 종류X
- JPQL에서 성능 최적화를 위해 제공하는 기능
- 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능
- join fetch 명령어 사용
- 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로
엔티티 페치 조인 (ManytoOne)
-
회원을 조회하면서 연관된 팀도 함께 조회(SQL 한 번에)
-
SQL을 보면 회원 뿐만 아니라 **팀(T.*)**도 함께 SELECT
-
[JPQL]
select m from Member m **join fetch** m.team
- 회원과 팀은 연관 관계가 있습니다. 회원을 조회하고 싶은데 팀도 동적으로 같이 가져오고 싶습니다.
- 그럴 땐 join fetch를 사용하면 됩니다.
-
[SQL]
SELECT M.*, **T.*** FROM MEMBER M
**INNER JOIN TEAM T** ON M.TEAM_ID=T.ID
- 분명 select m만 적었지만 SQL에서는 Member와 Team의 데이터를 다 나열합니다.
즉, 쿼리로 어떤 객체 그래프를 한 번에 조회하는 것을 직접 명시적으로 동적인 타이밍에 정할 수 있습니다.