Pageable对象
使用Spring Data JPA的Pageable对象可以进行数据库的查询分页,这个实现已经有很多博客介绍过了,就不再列举了,可参考链接:https://www.tianmaying.com/tutorial/spring-jpa-page-sort 等。
但是有一种情况就是,pageable无法对已查询出数据的list结果进行分页,这在实际开发中几乎不可避免,很多复杂业务,出于简化开发或者考虑实际的原因,不可能通过一个sql查询实现需求,肯定会对查询出的list数据进行过滤,而这时pageable对象的分页功能则失效了,参考代码:
List<Impianto> impiantos = myService.findMyMethod(); // returned 30 objects
Page<Impianto> pageImpianto = new PageImpl<Impianto>(impiantos, pageable, impiantos.size());
这种实现,是无法实现分页的。
根据spring data jpa作者的说法:
Spring Data repositories support pagination on query methods by simply declaring a parameter of type Pageable
to make sure they're only reading the data necessary for the requested