한 화면에 모든 데이터를 다 표시하기에는 보기도 힘들고 무리가 있어서,
Spring JPA에서 Pageable, Page를 이용해 페이징을 구현해보기로 했다.
예시로 작성해보기만 하고 직접 적용하는 건 처음이라서 많이 걱정했다.
기존에 불러올 때는 List<객체>
이렇게만 가져왔었는데
Page를 가져올 거라 Page<객체>
이런 형태로 가져와야 한다 !
JPA에서 메소드를 만들어 줄 때, Page<객체> 메소드명(Pageable pageable)
이렇게 만들어준다.
나는 파라미터로 List<Long>
도 받아주어야 했어서 파라미터가 두 개 들어갔다.
주의해야할 점은, Long 형태의 List들이, 해당 객체의 id 값이었는데,
그래서 처음에는
Page<객체> findAllById(List<Long> ids, Pageable pageable);
이런 형태로 만들었었다.
이랬더니 메소드를 잘못 사용해서 그런지 오류가 바로 발생했다.
findAllByIdIn 이런 형태로 메소드명을 바꿔주어 생성해야 한다!
처음에는 Page와 관련된 페이지 수나, 전체 페이지 수나 등등..
이런 값들을 어떻게 따로 저장해주지 ? 했는데
Page<객체>
로 만들어준다면 해당 값을 자동으로 받아오는 듯 했다.
따라서 프론트쪽에서 받아오는 값들로 페이지네이션을 구현할 수 있다 !
참고
https://wikidocs.net/162028
https://velog.io/@jyleedev/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%8D%B0%EC%9D%B4%ED%84%B0-JPA-Pageable-Page