spring-boot - 使用 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 Data 中没有捷径可走。
您可以包装对存储库的调用并将Page
收到的调用替换为修改后的调用,这将总量限制为10*pagesize
并删除第 10 页的next
值。如果页码大于 10,则可能会完全跳过对数据库的调用。
推荐阅读
- trailblazer - Trailblazer Reform,在验证前生成默认值
- python - 如何计算多类的精度、召回率和 f1 分数?我们如何在交叉验证中使用 average='micro','macro' 等?
- hasura - Hasura:重命名关系字段
- reactjs - 为什么计数值增加 1 而不是 2 在 React 中有两个 setState
- algorithm - 基于可用性的自动调度
- javascript - Using Axios with isLoaded
- reactjs - 如何使用 with-iron-session 在 NextJS api 路由中获取会话?
- node.js - 带有 Typescript 部署的 Heroku NodeJs 无法正常工作
- css - 从 Flex 中删除垂直空间
- html - 站点标题响应性