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

프랑이야님의 프로필 이미지
프랑이야

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

일대 다 관계 조회 질문입니다.

작성

·

194

0

=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요 영한님! 평소에 영한님 강의를 들으면서 개발 공부 열심히 하고 있는 개발자입니다.
일대다 연관관계에 대해서 궁금한 점이 있어서 여쭤봅니다.
 
일대다를 페치 조인하면 데이터가 뻥튀기 되어서 먼저 toOne 연관관계인 것들만 페치 조인으로 가져오고
그 다음에 @BatchSize를 사용하든 in 쿼리를 사용해서 페이징을 유지하면서 일대 다를 성능 최적화 시키면서 가지고 올 수 있다는 것은 이해를 했습니다!
 
그런데 궁금한 점이 생겨서 질문드립니다.
예를 들어 회원 리스트 조회 API에, member와 member_account 테이블이 있고, 한개의 멤버에 여러 개의 멤버 account가 있을 수 있는 일대 다 형식입니다
member를 기준으로 페이징을 하고 싶은데, 조회 API 검색 조건에 member와 member_account테이블을 동시에 봐야되는 요구사항이 있어서 쿼리에 member와 member_account를 join 하고 where절에 해당 테이블을 사용할 수 뿐이 없으면,
이런 상황에서는 데이터가 뻥튀기 되고 member를 기준으로 페이징이 안될 것 같은데 이거는 기술적으로 해결 방법은 없고
기획적으로 접근 방법을 달리 해야되는지 궁금해서 여쭤봅니다.
 
긴 글 읽어주셔서 감사합니다!

답변 1

1

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

안녕하세요. 프랑이야님

SQL을 좀 더 깊이있게 학습해보시면 해결 방안을 찾으실 수 있을거에요.

(네이티브 쿼리를 사용하고, From 절에 서브쿼리 방법 등을 사용해서 해결하면 될 것 같아요.)

감사합니다.

프랑이야님의 프로필 이미지
프랑이야
질문자

쿼리를 잘 알지 못햇는데 쿼리로 풀 수 잇엇군요 ㄷ;

답변 감사합니다 영한님!

프랑이야님의 프로필 이미지
프랑이야

작성한 질문수

질문하기