FETCH JOIN

Fetch Join은 필요한 연관만 쿼리에서 명시한다

전역 EAGER 전환보다 use case별 fetch join이나 entity graph로 필요한 관계만 가져오는 편이 안전하다.

ExplicitJoin rowsPitfall

좋은 사용

target

상세 화면처럼 필요한 연관이 명확함

sql

JOIN FETCH / EntityGraph로 의도를 드러냄

verify

쿼리 수와 실행 계획을 같이 확인

주의점

1:N

컬렉션 조인은 결과 행 중복 발생

page

pagination과 함께 쓰면 결과 왜곡 가능

bags

여러 bag fetch join은 Hibernate 예외 가능

원칙: EAGER를 기본값으로 키우는 대신, 필요한 쿼리에서 fetch 전략을 드러낸다.