WEB SERVER [ 웹 서버 ]/SPRING BOOT [스프링 부트]
최신 글 부터 목록에 표시하기
prayme
2020. 1. 14. 17:14
시작하기 앞서
처음 배우는 스프링 부트 2를 읽다가 글 목록을 불러오는 예제를 따라해봤다. 예제에서는 가장 먼저 만들어진 글 부터 불러왔지만 우리가 평소에 마주하는 게시판들은 모두 최신 글을 가장 먼저 불러온다. 따라서 예제를 수정해서 최신 글부터 불러오는 것을 시도했다.
Pagination
쪽수 매기기라는 뜻이다. 추후 게시판을 구현 할 일이 생긴다면 Spring boot Pagination examples 등으로 검색하면 좋을 것 같다.
Pagable
Spring Data JPA에서 제공하는 편리한 객체이다. 책을 읽고 나중에 더 깊게 공부하자
Pagination을 위한 Pageable 객체
Pageable 객체의 구현체인 PageRequest.of를 사용한다. 그래서 먼저 PageRequest의 코드를 먼저 살펴보자.
public static PageRequest of(int page, int size) {
return of(page, size, Sort.unsorted());
}
public static PageRequest of(int page, int size, Sort sort) {
return new PageRequest(page, size, sort);
}
기존 코드
pageable = PageRequest.of(pageable.getPageNumber() <= 0 ? 0 : pageable.getPageNumber() - 1,
pageable.getPageSize());
기존의 코드는 위에 Sort가 없는 메소드를 사용했다. 그랬더니 오름차순(ascending)으로 글이 정렬되었다. 따라서 내림차순(descending)으로 변경해줄 필요가 있었다. 기존 코드의 실행 화면을 살펴보자.
변경 코드
pageable = PageRequest.of(pageable.getPageNumber() <= 0 ? 0 : pageable.getPageNumber() - 1,
pageable.getPageSize(), Sort.by("idx").descending());
idx를 기준으로 내림차순으로 정렬하라고 명령했고 사진처럼 잘 정렬이 되었다.