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 전략을 드러낸다.