https://www.inflearn.com/questions/23847/queryprojection%EA%B3%BC-fetch-join
@QueryProjection과 fetch join - 인프런 | 질문 & 답변
List<ProjectionResult> fetch = queryFactory .select(new QProjectionResult(classA.id, classA.relStatus.stringValue(), ...
www.inflearn.com
실전API2 => DTO를 직접 조회 에서 설명해줄듯 => 직접 조회시 페치조인 X
그럼 어케해 ㅅㅂ Tuple도 DTO로 인식되서 페치조인을 못 쓰는데 그럼 뭐지
해결법
- 엔티티 조회 방식으로 우선 접근(이후, DTO로 만들어 반환 가능)
- 페치조인으로 쿼리 수를 최적화
- 컬렉션 최적화
- 페이징 필요 O => hibernate.default_batch_fetch_size , @BatchSize 로 최적화
- 페이징 필요 X => 페치 조인 사용
- 엔티티 조회 방식으로 해결이 안되면 DTO 조회 방식(DTO로 직접 조회) 사용
- DTO 조회 방식으로 해결이 안되면 NativeSQL or 스프링 JdbcTemplat