JPA 페이징

박현민·2023년 1월 17일
0

페이징 기능을 추가했는데 조회가 제대로 안되는 문제가 발생했다.
리포지토리에 시작, 끝 두개의 매개변수를 넘겼다.
그래서 setFirstResult(시작) / setMaxResults(끝) 이렇게 넣었었다.
이렇게 하니깐 페이지가 뒤로 갈수록 50, 100, 150,, 이렇게 50개씩 증가되는 데이터들이 조회되었다.
지금 생각하면 아무것도 아닌데 그 당시에는 도대체 왜그러는건지 오래 고민을 했다.

어디 값에 문제가 있었나... 매개변수가 잘못됐나.. 디버깅하면서 값도 찍어봤는데 내가 원했던 값들이 잘 들어있었다.

그래서 한번 찾아봤는데 글쎄 setMaxResults에 끝을 넣는게 아니라 불러올 개수를 넣어야하는거였다.
메서드 이름도 그렇고 메서드의 주석도 찾아보니

    /**
     * Set the maximum number of results to retrieve.
     * @param maxResult  maximum number of results to retrieve
     * @return the same query instance
     * @throws IllegalArgumentException if the argument is negative
     */
    TypedQuery<X> setMaxResults(int maxResult);

이렇게 친절하게 결과의 최대 개수라고 써져있는데...

참 민망할정도로 내가 멍청했다.

0개의 댓글