java - 在 Spring Boot 中获取错误的页数
问题描述
我在 Spring Boot 中进行分页。我的列表上有 32 条记录。我试图在页面大小为 5 的页面中获取这些列表。当我检查从 0 到 3 的页面时,我得到了正确的总元素(每页 5 个)。但是当我检查最后一页时,它在列表中少了一个元素(最后一页上的 1 个元素,但它应该返回 2),并且元素的总数减少了一个。
@Query(value = "SELECT DISTINCT s FROM Students s JOIN FETCH s.Teachers WHERE s.Teachers IN (:Teachers)", countQuery = "SELECT count(DISTINCT s) FROM Students s" +
" WHERE s.Teachers IN (:Teachers)")
Page<Students> findByStd(@Param("Teachers") List<Teacher> Teacher, Pageable pageable);
解决方案
SELECT DISTINCT s
FROM Students s JOIN FETCH s.Teachers
WHERE s.Teachers IN (:Teachers)
SELECT count(DISTINCT s)
FROM Students s
WHERE s.Teachers IN (:Teachers)
让我们来看看
FROM Students s JOIN Teachers
与
FROM Students s WHERE s.Teachers IN (:Teachers)
因此,pageNumber 是错误的。
推荐阅读
- javascript - (未知 url)的 Http 失败响应:0 Unknown Error on running jasmine unit test without backend
- git - 如何在 Azure/VSO 中启用/禁用秘密扫描
- xampp - 单击“启动 Moodle.exe”时出错
- javascript - 具有删除行选项的动态表
- java - 如何为 Jackson 反序列化指定默认值
- python - 使用特定的类/函数预加载 Jupyter Notebook
- javascript - 预期的参数是`array`类型但接收到`string`类型 - image-webpack-loader
- php - Codigniter Rest api 中的图像验证
- java - 在两个简单类的上下文中掌握依赖注入
- java - 从 Firebase 身份验证中检索用户 ID 时,我得到一个空值