맨날 다 끝난 후에야 내용 캡쳐해놓을것을 후회하다...🥲
문제
pageable 의 pagesize 를 10으로 고정했는데도 불구하고 테스트환경에서 pagesize가 1로 디폴트 된 값이 나왔다.
그로 인해 우리 프로젝트에서 원하는 10size 로 매번 변경해주어야 했다.
해결과정
1 yml 파일로 설정
spring:
data:
web:
pageable:
default-page-size: 10
아무런 변화가 없다.
2 PageRequet 클래스의 of 메서드로 pageable 객체 생성
방법을 찾는 도중
우리는 커서기반으로 한 무한스크롤 페이지가 나오는 프로젝트만들고 있는데 굳이 pagesize 와 pagenumber을 입력받을 필요가 없다는 것을 깨달아서 아예 입력받는 request 를 제거하였다.
offset 기반으로 한 페이징의 경우 사용자가 요구하는 페이지넘버가 필요하겠지만
커서기반은 우리가 설정해놓은 size 만큼의 데이터를 사용자가 확인할 수 있기만 하면 되는 것이다.
그래서 service 단으로 넘겨줄 때에 pageRequest 클래스의 0f 메서드로
pageNumber 0 ( 사용자가 조회하는 페이지는 항상 첫 화면)
pageSize 10
으로 지정해주어 Pageable 객체를 생성하였다.
PageRequest 클래스
public class PageRequest extends AbstractPageRequest {
private static final long serialVersionUID = -4541509938956089562L;
private final Sort sort;
protected PageRequest(int pageNumber, int pageSize, Sort sort) {
super(pageNumber, pageSize);
Assert.notNull(sort, "Sort must not be null");
this.sort = sort;
}
public static PageRequest of(int pageNumber, int pageSize) {
return of(pageNumber, pageSize, Sort.unsorted());
}
public static PageRequest of(int pageNumber, int pageSize, Sort sort) {
return new PageRequest(pageNumber, pageSize, sort);
}
BubbleController.kt
ResponseEntity.ok().body(bubbleService.getBubblesByKeyword(bubbleId, keyword, PageRequest.of(0, 10)))
'왕초보일지' 카테고리의 다른 글
240219 TIL | (0) | 2024.02.19 |
---|---|
240218 TIL | Redis 사용 (2) | 2024.02.18 |
240215 TIL | (0) | 2024.02.15 |
240214 TIL | (0) | 2024.02.14 |
240213 TIL | 테스트 코드 (0) | 2024.02.13 |