Hibernate Criteria排序和分页不起作用

时间:2017-09-08 15:40:53

标签: hibernate sorting pagination criteria hibernate-criteria

使用criteria.addOrder(Order.asc("sortAttribute"))非唯一属性进行排序时,我发现了一种奇怪的行为。返回的结果是重复的。

当sortAttribute是数据库中的唯一键时,工作正常也是如此。

resultObj = criteria.addOrder(order)
                        .setFirstResult(page.getPageNumber() * page.getPageSize())
                        .setMaxResults(page.getPageSize())
                        .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
                        .list();

另外,我确实在两个实体之间有一个连接。 (虽然我不明白为什么这可能是不稳定行为的原因)

1 个答案:

答案 0 :(得分:0)

好吧,我想我找到了解决这个问题的方法。我做了以下工作以获得预期的结果:

  • 首先对非唯一键进行排序。
  • 然后按唯一键排序。

这样结果始终保持正确的顺序,并确保了排序和分页。

希望这可以帮助遇到此类问题的人。