是否有允许从Java Collection创建Page
实例的Spring实用程序?
类似于:
Page<MyObject> myObjPage = PagingUtils.createPageFromCollection(listOfMyObjects, pageable);
还是应该手动实现分页和排序逻辑?
我想你的问题可以通过这个链接得到回答。
答案似乎是你需要手动执行。
考虑两种场景-
- 我想要来自spring的数据作为分页和排序,然后
I(创建一个(org.springframework.data.domain.sort(的排序对象
Sort sort = sortType.equals("ASC") ? Sort.by(sortField).ascending() :
Sort.by(sortField).descending();
ii(将此排序类型传递给可分页对象
Pageable pageable = PageRequest.of(pageId, pageSize, sort);
iii(将此可分页对象传递给JPA假设方法
yourRepository.findAll(pageable);
这将返回带有分页和排序的数据。
案例2-您的场景-从一个收集对象,我想要带有分页的数据
那么您必须接受PageImpl类的帮助。提供2个建造商来完成
PageImpl(List<T> content, Pageable pageable, long total)
其中
- content–此页面的内容(您的收藏对象(
- pageable–分页信息
- total–可用项目的总数
还有另一个构造函数
PageImpl(List<T> content)
注意-这将导致创建的页面与整个列表相同
Pageable Pageable=PageRequest.of(pageNo-1,pageSize(;
Page Page=questionRepository.findAll(可分页(;
列表问题=page.getContent((;