작성
·
214
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
여기에 질문 내용을 남겨주세요.
1:N 관계에서 1을 기준으로 페이지네이션 조회에 대해 질문드립니다.
강의에서는
N을 기준으로 조회
lazy loading을 이용한 성능을 포기한 조회
@BatchSize를 이용한 방법 이 세 가지가 제안되었습니다.
만약 이 페이지네이션에서 강의 초반부 예시처럼 N쪽에 조건문이 걸려야 해서 그에 대한 결과물을 가져와야 하는 경우
E.g. where m.age = 10
1번 방법으로 조회를 해야할 것 같은데
1번 방법에서 N:1임에도 1 입장에서 페이지네이션 개수 그대로 데이터를 추출할 수 있는 방법이 떠오르지 않아 질문드립니다.
N:1로 바꿔서 PAGE_SIZE를 10이라고 가정할 때 조회
(memberId가 10개가 나온다)
teamId:1, memberId:1
teamId:1, memberId:2
teamId:1, memberId:3
teamId:2, memberId:4
teamId:2, memberId:5
teamId:2, memberId:6
teamId:2, memberId:7
teamId:3, memberId:8
teamId:3, memberId:9
teamId:3, memberId:10
실제 기대하는 조회
(team 이 10개가 나오기를 기대)
teamId:1, memberId:1
teamId:1, memberId:2
teamId:2, memberId:3
teamId:2, memberId:4
teamId:3, memberId:5
teamId:3, memberId:6
teamId:4, memberId:7
teamId:5, memberId:8
teamId:5, memberId:9
teamId:5, memberId:10
teamId:6, memberId:11
teamId:6, memberId:12
teamId:7, memberId:13
teamId:7, memberId:14
teamId:8, memberId:15
teamId:8, memberId:16
teamId:8, memberId:17
teamId:9, memberId:18
teamId:9, memberId:19
teamId:10, memberId:20
teamId:10, memberId:20
답변 1
0
안녕하세요. won님, 공식 서포터즈 코즈위버입니다.
데이터 조회와 페이징을 위한 카운트 쿼리는 결국 분리하여 사용할 수 밖에 없습니다.
1:N 으로 쿼리하 되 1의 아이디로 group by 를 활용하여 카운트를 세야 합니다.
감사합니다.