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

BADAL KIM님의 프로필 이미지

작성한 질문수

실전! Querydsl

offset과 distinct

해결된 질문

22.05.07 20:17 작성

·

394

0

팀과 멤버 (1:N)

팀 A의 멤버1, 멤버2, 멤버3, 멤버4, 멤버5가 있습니다.

팀A를 멤버와 함께 fetchjoin해서 가져오게 되면 팀A 객체 5개가 반환됩니다.

 

그런데 querydsl에서 아래와 같이 distinct()를 사용하지 않고 offset()만 사용하였는데  

queryFactory
.selectFrom(team)
.join(team.members, member).fetchJoin()
.offset(pageable.getOffset())
.fetch();

distinct 한 것처럼 중복이 제거되었습니다. 무슨 이유일까요?

답변 1

0

y2gcoder님의 프로필 이미지

2022. 05. 08. 16:23

안녕하세요. BADAL KIM님, 공식 서포터즈 y2gcoder입니다.

제가 봤을 때는 컬렉션 페치 조인에서  paging을 같이 사용했을 때, 어플리케이션 메모리 단에서 페이징 처리를 해줘서 그러한 결과가 나타나는 것으로 보입니다. 해당 부분은 실제로 페이징 처리가 된 것이 아니며 성능에 문제가 생길 수 있습니다. 

해당 부분에 대해 자세하게 설명해놓은 링크가 있어 올려놓겠습니다!

https://tecoble.techcourse.co.kr/post/2020-10-21-jpa-fetch-join-paging/


감사합니다.