인프런 커뮤니티 질문&답변

yoongdoo0819님의 프로필 이미지
yoongdoo0819

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

페치 조인 한계 - 둘 이상의 컬렉션은 페치 조인 할 수 없다

해결된 질문

작성

·

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 밖에 없습니다. 따라서 정상적으로 동작합니다.

감사합니다.

yoongdoo0819님의 프로필 이미지
yoongdoo0819

작성한 질문수

질문하기