![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=1739496055-2k9i2y2ZzHwEZFELQGyg88H75RKYJsOr-0-9738e93fb5f07d98206c6d4a3f8e6233)
(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=1739496055-a4mnzOt5N7kGCMQZRW8QSbfW7SDqJOEm-0-8b29e374ecd83ee5cc3ed156fcc139a7)
通过上面的源码我们可以发现这些查询都会用到后面章节要讲的Specification查询方法。
2.4.2 PagingAndSortingRepository使用示例
只需要继承PagingAndSortingRepository的接口即可,其他不用做任何改动。UserPagingAndSortingRepository修改如下:
![](https://epubservercos.yuewen.com/4D44C0/15253387904117506/epubprivate/OEBPS/Images/Figure-P34_3200.jpg?sign=1739496055-LW5rg4gawir2evmbgtYmrp7AETl1qcf3-0-a03fa1d1c41e9e00a37eb042b2c9b540)
UserController修改如下:
![](https://epubservercos.yuewen.com/4D44C0/15253387904117506/epubprivate/OEBPS/Images/Figure-P34_3201.jpg?sign=1739496055-8CdF8N35AxrYkxubLsYxI3xv1l53zufh-0-0e0ed4730b16caf71b90ec2e1dfad8b9)