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

유승현님의 프로필 이미지

작성한 질문수

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

페치 조인 2 - 한계

Paging, batchSize관련 질문

21.08.30 20:37 작성

·

201

1

 team1에 멤버 2명, team2에 멤버 5명 이런식으로 있다고 할때 

배치 사이즈 설정의 경우 2로 설정을 하면

팀의 단위를 2개 기준으로 나눠서 배치로 조회하는 것은 알겠습니다.

그러면 위의 경우 7개의 결과가 출력되는 건데,

----

만약 한번에 총(팀단위 x) 5개씩 조회를 하고 싶다면 이 건의 경우 배치사이즈 설정으로는 페이징 할 수 없는 것 같은데,

(팀 a 멤버1, 2 / 팀 b 멤버 1,2,3)

(팀b 멤버 4,5)
이런식으로


이 경우에는 어쩔수 없이 멤버를 기준으로 조회해서 (멤버 + 팀) 5개씩 Maxsize 설정을통해 5개씩 출력하는 수밖에 없는 건가요?

(+ team이름 기준으로 순서를 매겨?)

----

만약에 테이블에서 결과를 k개씩 출력한다고 할때,
어떤 경우에는 N:1(member -> team join)에서 페이징이 아닌

1:N 관계에서 조회가 필요(team -> member join)하고 k개씩 페이징하고 싶다고 하면 배치로는 해결하지 못하는 것 같은데

다른 방법이 있을까요?

---

여기서 예시로 든 case에는 사실, 멤버를 기준으로 팀을 조인하고 페이징하면 해결이 되지만, 어떤 경우에는 1:N관계에서 출력이 필요한 경우도 있지 않을까해서 여쭤봅니다.

그런경우는 거의 없을까요?

답변주시면 감사드리겠습니다.

답변 1

1

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

2021. 08. 31. 21:54

안녕하세요. 유승현님

이 경우에는 어쩔수 없이 멤버를 기준으로 조회해서 (멤버 + 팀) 5개씩 Maxsize 설정을통해 5개씩 출력하는 수밖에 없는 건가요?

-> 네 맞습니다.

승현님이 고민하신 부분을 해결하려면 페이징을 하는 기준 자체가 팀이 아니라 멤버로 달라져야 합니다.

감사합니다.