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

KK님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

CollectionTable사용시 fetch 조인에 대해서

작성

·

170

0

안녕하세요! 

기본 빼고는 전부 완강했습니다. 좋은 강의 감사합니다! 

강의를 다듣고 여러가지 실습을 해보고 있는데요.

OneToMany 일대다 fetch조인은 하나의 테이블에 대해서 밖에 안되는데 

일대다 관계의 CollectionTable조인은 여러 테이블에 대해서도 에러가 안나고 N+1 문제도 발생하지 않더군요.

CollectionTable도 결국은 테이블에 대한 조인인데 왜 문제 없이 테이터를 가지고 올 수 있는지 궁금합니다.

답변 3

1

김영한님의 프로필 이미지
김영한
지식공유자

네 활용2편에서 설명드렸듯이 이런경우는 BatchSize로 최적화하는게 가장 편리하지요. 물론 상황에 따라서 활용2편에서 설명한 DTO 조회 방식을 적절하게 사용하기도 합니다^^

0

KK님의 프로필 이미지
KK
질문자

답변 감사합니다!

기본편은 일단 책으로 공부하고 있는데 내용을 띄엄띄엄 봐서인지 많이 부족하네요ㅠ

그렇군요! 역시 fetch조인 2개 이상은 무조건 피해야하겠군요.
화면쪽에서 체크박스 형식으로 입력되는 데이터는 어쩔수없이 일대다 관계를 가지게 되는데 
그런 관계가 한 테이블당 두세개씩은 존재하거든요.
이런거는 일반적으로 BatchSize로 최적화하는 방식을 선호하시나요?

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요 KK님^^!

우선 collectionTable 조인이라고 해도 오류 메시지가 안나온다 뿐이지 결국 둘 이상의 1:N 테이블을 조인한 것이기 때문에 데이터 상황에 따라서 초과해서 조회되거나 꼬이는 등 문제가 발생할 수 있습니다. 그래서 절대 사용하면 안됩니다^^!!!

(p.s 기본편은 필수입니다 ㅎㅎ)

감사합니다.

KK님의 프로필 이미지

작성한 질문수

질문하기