欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

spring-boot 使用Pageable将查询结果list 转page 分页

程序员文章站 2022-05-17 09:28:22
...

1、通过pageable 实现将list 转 page

测试发现  直接 通过 new pageImpl 来转换page 行不通

Page<String> stringPage = new PageImpl<String>(strings, pageable, strings.size());

根据结果可知  未实现分页功能。 

 spring-boot 使用Pageable将查询结果list 转page 分页

则通过手动分割方式去实现 

public static void main(String[] args) {
        List<String> strings = new ArrayList<String>();
        for (int i=0;i<20;i++){
            strings.add("第"+i+"数据");
        }
        Pageable pageRequest = new PageRequest(1, 10);
        Page<String> strings1 = listConvertToPage1(strings, pageRequest);
        System.out.println(strings1);
    }

public static <T> Page<T> listConvertToPage1(List<T> list, Pageable pageable) {
        int start = pageable.getOffset();
        int end = (start + pageable.getPageSize()) > list.size() ? list.size() : (start + pageable.getPageSize());
        return new PageImpl<T>(list.subList(start, end), pageable, list.size());
    }

 

spring-boot 使用Pageable将查询结果list 转page 分页