我们在服务器中有以下查询:
Query query = this.entityManager.createQuery(
"SELECT type, id, date, amount FROM Transaction ORDER BY type ASC");
类型字段不是唯一的。
为了实现分页,我们使用如下代码:
query.setFirstResult(currentPage * pageSize).setMaxResults(pageSize);
这意味着如果我们希望页面大小为 10,并且总共有 15 个结果,则客户端发送currentPage = 0, pageSize = 10
以显示第一页并currentPage = 1, pageSize = 10
显示第二页。
似乎在总结果 > 页面大小的情况下,我们在不同页面上得到相同的结果,并且某些结果行根本不显示(在任何页面上)。我们的猜测是这个问题与排序字段不是唯一的事实有关,因为如果我们使用以下查询,它不会发生:
"SELECT type, id, date, amount FROM Transaction ORDER BY type ASC, id ASC"
有谁知道为什么会这样?以及如何解决?(其他只是将 id 添加为排序字段)。