![Spring Data JPA从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/731/26793731/b_26793731.jpg)
上QQ阅读APP看书,第一时间看更新
2.4 PagingAndSortingRepository方法详解
通过类的关系图,我们可以看到PagingAndSortingRepository继承CrudRepository所有的基本方法,它增加了分页和排序等对查询结果进行限制的基本的、常用的、通用的一些分页方法。
2.4.1 PagingAndSortingRepository interface内容
![](https://epubservercos.yuewen.com/4D44C0/15253387904117506/epubprivate/OEBPS/Images/Figure-P33_2982.jpg?sign=1739301493-eCqkmw9xZz1BdnZM5j5TuUqKB6mV1bnU-0-54ac8f8b1d958b487296b700696846a2)
(1)根据排序取所有对象的集合。
(2)根据分页和排序进行查询,并用Page对象封装。Pageable对象包含分页和Sort对象。
PagingAndSortingRepository和CrudRepository都是Spring Data Common的标准接口,如果我们采用JPA,那它对应的实现类就是Spring Data JPA的model里面的SimpleJpaRepository。如果是其他NoSQL的实现Mongodb,那它的实现就在Spring Data Mongodb的model里面。
实现内容如下:
![](https://epubservercos.yuewen.com/4D44C0/15253387904117506/epubprivate/OEBPS/Images/Figure-P33_2983.jpg?sign=1739301493-zn1o9wF2O1RgZpZAcx5C3CHbjIwWhvgs-0-a2665c6378e220ba3e8415389e2a2152)
通过上面的源码我们可以发现这些查询都会用到后面章节要讲的Specification查询方法。
2.4.2 PagingAndSortingRepository使用示例
只需要继承PagingAndSortingRepository的接口即可,其他不用做任何改动。UserPagingAndSortingRepository修改如下:
![](https://epubservercos.yuewen.com/4D44C0/15253387904117506/epubprivate/OEBPS/Images/Figure-P34_3200.jpg?sign=1739301493-66sjLpaskOiVDWq5MUJ9Qn3DEDepr68J-0-b84ba68e6d18f1695e53169d72a9bb25)
UserController修改如下:
![](https://epubservercos.yuewen.com/4D44C0/15253387904117506/epubprivate/OEBPS/Images/Figure-P34_3201.jpg?sign=1739301493-O3GEGv9S1EoiKGf0B7otEIZFjBfmdkmz-0-b4194c7fa6bfeb7dd5bd5d346a3338f3)