首页 > 解决方案 > 使用 Spring Boot 分页限制最大结果

问题描述

我正在尝试获取有限数量的搜索结果,但仍在使用分页。当我在我的存储库类中使用下一行时,我在页面上得到 100 个结果。

Page<Media> findTop100ByOrderByViewCount(Pageable pageable);

如果我改用下一行,那么我会根据我的 pageable 得到预期的结果,每页上有 10 个项目。

 Page<Media> findAllByOrderByViewCount(Pageable pageable);

我想限制搜索结果。如果有 1000 条搜索结果,我不想有 100 条分页结果。我想将我的分页限制限制为最多 10 页。

如何在 Spring Boot 中实现这一点?我正在使用2.2.2.RELEASE版本。

标签: spring-bootpaginationspring-data-jpa

解决方案


在 Spring Data 中没有捷径可走。

您可以包装对存储库的调用并将Page收到的调用替换为修改后的调用,这将总量限制为10*pagesize并删除第 10 页的next值。如果页码大于 10,则可能会完全跳过对数据库的调用。


推荐阅读