Sorting and Pagination
在之前的小节中我们了解到 JpaRepository
继承了 PagingAndSortingRepository
接口。
通常来讲,我们可以像上述代码一样来拉取全部数据,我们也可以这样:
从而可以将结果进行排序。如果设置了 spring.jpa.show-sql: true
,可以在后台看到查询语句:
如果要使用函数:
默认情况下,JPA 拒绝含有任何函数的 Sort 实例。如果一定要函数的话,可以使用 JpaSort.unsafe()
:
我们也可以进行分页,同样非常简单:
但是对于预定义方法,使用分页时其返回值为 Page<T>
,要取得 List<T>
使用:
如果需要同时使用分页和排序呢?是这样吗:
不能同时使用分页和排序!!!
应该在分页的基础上使用分页(Spring Data JPA 会对所有数据进行排序,然后分页):
除了可以在预定义方法上使用分页和排序,也可以在自定义方法上使用
只需要给你的自定义方法加一个 Pageable
或者 Sort
类型的参数即可。并且,自定义参数可以直接指定 List<T>
作为返回值,Spring Data JPA 会自动进行转换。
最后更新于