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

백엔드님의 프로필 이미지
백엔드

작성한 질문수

실전! Querydsl

스프링 데이터 페이징 활용3 - 컨트롤러 개발

searchSimple 에 관한 질문입니다.

해결된 질문

작성

·

235

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

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

[질문 내용]

@Override
public Page<MemberTeamDto> searchPageSimple(MemberSearchCondition condition, Pageable pageable) {
    List<MemberTeamDto> content = queryFactory
            .select(new QMemberTeamDto(
                    member.id,
                    member.username,
                    member.age,
                    team.id,
                    team.name
            ))
            .from(member)
            .leftJoin(member.team, team)
            // where 방식이 더 좋은 이유는 무엇일까? 재사용성이 좋아진다. 이게 가장 큰 객체지향의 특징인데 이걸 이용할 수 있음!
            .where(usernameEq(condition.getUsername()),
                    teamNameEq(condition.getTeamName()),
                    ageGoe(condition.getAgeGoe()),
                    ageLoe(condition.getAgeLoe()))
            .offset(pageable.getOffset())
            .limit(pageable.getPageSize())
            .fetch();

    int totalSize = content.size();
    log.info("total size = " + totalSize);
    return new PageImpl<>(content, pageable, totalSize);

}


serachSimple을 아래와 같이 작성하였습니다.
fetchResults가 deprecated 되어서 이렇게 작성하였는데
postman에서 실행결과 total 페이지가 들어간 수로만 나옵니다.



이유를 알 수 있을까요??

답변 1

0

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

totalSize에 offset limit로 페이징한 쿼리의 size()를 넣어주셨기 때문입니다! count query는 offset limit를 제거해주십쇼!

감사합니다.

백엔드님의 프로필 이미지
백엔드
질문자

감사합니다!

백엔드님의 프로필 이미지
백엔드

작성한 질문수

질문하기