[Springboot/Spring]List를 Page로 변환하는 방법

Juseong Han·2022년 9월 20일
0

궁금증

JPA는 기본적으로 findAll(Pageable p) 또는 findAllBy(Pageable p)의 메소드 네이밍을 통하여 Page리스트를 반환받을 수 있다. 이러한 Page를 직접 구현하는 방법은 뭘까?

해결법

다음은 List를 Page로 직접 변환하는 과정이다.

// 원래 이 메소드는 정의해놓으면 Page를 자동반환 가능하다 지금은 Test느낌으로
List<User> userList = userRepotiroy.findAllByName(name);
// 요청으로 들어온 page와 한 page당 원하는 데이터의 갯수
PageRequest pageRequest = PageRequest.of(page, size);
int start = (int) pageRequest.getOffset();
int end = Math.min((start + pageRequest.getPageSize()), userList.size());
Page<User> userPage = new PageImpl<>(userList.subList(start, end), pageRequest, userList.size());
profile
개발이 하고 싶어요💻 개발이 너무 재밌는 Juseong입니다.🖐

0개의 댓글