我们在服务器中有以下查询:
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
显示第二页。
似乎在总结果>的情况下页面大小我们在不同的页面上得到相同的结果,并且根本不显示某些结果行(在任何页面上)。 我们的猜测是这个问题与sort字段不是唯一的事实有关,因为如果我们使用以下查询,它就不会发生:
"SELECT type, id, date, amount FROM Transaction ORDER BY type ASC, id ASC"
有谁知道为什么会这样?以及如何解决? (其他只是将id添加为排序字段)。