HQL分页在不同页面上返回相同的结果

时间:2015-08-17 12:51:17

标签: java spring pagination hql javax.persistence

我们在服务器中有以下查询:

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添加为排序字段)。

0 个答案:

没有答案