SpringData PagingAndSortingRepository(七)

SpringData PagingAndSortingRepository(七)

分页


右下图知,该接口是继承CrudRepository接口的。

SpringData PagingAndSortingRepository(七)



点进PagingAndSortingRepository发现里面有两个方法,是重载的。

第一个传入Sort进去,返回一个Iterable<T>,所以这个应该是跟排序相关的方法~

第二个传入Pageable,返回一个Page<T>,所以应该是跟翻页相关的方法。其实传入的Pageable可以包括

Sort,所以我们测试的话,只要测试分页就可以了。


SpringData PagingAndSortingRepository(七)



SpringData PagingAndSortingRepository(七)



因为分页和排序是一个只读操作,所以我们在PersonRepository基础上进行测试就可以了。而不需要在打扰上边的Service。



修改PersonRepository继承的接口为PagingAndSortingRepository

SpringData PagingAndSortingRepository(七)



编写测试类。

SpringData PagingAndSortingRepository(七)

我们注意到这个Pageable实际上是一个接口,那么接口是用不了的哈。对着Pageable按ctrl+T,发现其有一个实现类

SpringData PagingAndSortingRepository(七)




点进PageRequest发现其封装了我们分页时需要传入的一些信息。

当前多少页,每页多少条数据以及分页的信息。所以说我们用的话用这个PageRequest就可以了。

SpringData PagingAndSortingRepository(七)


修改后的测试类

SpringData PagingAndSortingRepository(七)




运行后的结果如下

SpringData PagingAndSortingRepository(七)




排序

SpringData PagingAndSortingRepository(七)