해결된 질문
작성
·
425
0
안녕하세요,
'페치 조인 2 - 한계' 강의를 듣던 도중, 잘 이해가 되지 않는 부분이 있습니다.
'페치 조인 2 - 한계' 강의 (6분 44초) 에서 다음과 같이 '둘 이상의 컬렉션은 페치 조인 할 수 없다' 라고 말씀해주셨습니다.
제가 궁금한 점은, 이후 '실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화' 강의에서,
/api/v3/orders api에서 아래와 같이 페치 조인을 하는 예시를 설명해주셨습니다.
해당 api를 통해 페이징이 불가능하다는 것은 이해하였고 BatchSize를 통해 페이징이 가능한 형태로 최적화하는 방법은 이해하였습니다만, 둘 이상의 컬렉션을 페치 조인 할 수 없다고 말씀하신 부분은 잘 이해가 되지 않아서 이렇게 질문을 드립니다.
말씀해주신 둘 이상의 컬렉션이 다른 의미를 내포하는 것인지, 아니면 둘 이상의 컬렉션을 페치 조인할 수는 있지만, 최대한 지양해야 하는 것으로 이해하면 될지 궁금합니다.
'실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화' 강의 내용이지만, 페치 조인의 한계에 대한 의문점이라서 본 강의에 질문을 드립니다.
감사합니다.
답변 1
1
안녕하세요. yoongdoo0819님, 공식 서포터즈 David입니다.
fetch join으로 일대다(@OneToMany)에 해당하는 컬렉션을 2개 이상 조회할 때 multiple bag 예외가 발생합니다. (https://www.inflearn.com/questions/218027)
질문에 포함하신 쿼리를 보시면 OneToMany에 해당하는 것은 OrderItems 밖에 없습니다. 따라서 정상적으로 동작합니다.
감사합니다.