개발/java

spring 에서 pageable custom 구현

소확행개발자 2019. 12. 19. 16:33

spring 에서 pageable custom 구현

spring 에서 jpa page 를 사용하면 편리하겠지만 

가끔씩은 필요한 요구조건에 맞춰 내가 직접 pagenation 을 해야할 일이 생긴다.

 

간단하게 list 와 pageable 을 컨트롤러 layer 에서 받았을때 사용할 수 있는 custom pageable 을 작성해보았다.

private Page<Long> makePageFromGoodsIds(List<Long> goodsIds, Pageable pageable) {

        int start = (int) pageable.getOffset();
        int end = Math.min((start + pageable.getPageSize()), goodsIds.size());

        return new PageImpl<>(goodsIds.subList(start, end), pageable, goodsIds.size());
    }