Hibernate Criteria 排序和分页不起作用
Hibernate Criteria ordering and pagination not working
我在使用 criteria.addOrder(Order.asc("sortAttribute"))
对 非唯一 属性进行排序时发现了一个奇怪的行为。返回的结果是重复的。
当 sortAttribute 是数据库中的唯一键时,工作正常。
resultObj = criteria.addOrder(order)
.setFirstResult(page.getPageNumber() * page.getPageSize())
.setMaxResults(page.getPageSize())
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
此外,我在两个实体之间确实有一个连接。 (虽然我真的不明白为什么这可能是不稳定行为的任何原因)
好吧,我想我找到了解决这个问题的办法。我做了以下以获得预期结果:
- 首先按非唯一键排序。
- 然后按唯一键排序。
通过这种方式,结果始终处于正确的顺序,并确保了排序和分页。
希望这可以帮助遇到此类问题的人。
我在使用 criteria.addOrder(Order.asc("sortAttribute"))
对 非唯一 属性进行排序时发现了一个奇怪的行为。返回的结果是重复的。
当 sortAttribute 是数据库中的唯一键时,工作正常。
resultObj = criteria.addOrder(order)
.setFirstResult(page.getPageNumber() * page.getPageSize())
.setMaxResults(page.getPageSize())
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
.list();
此外,我在两个实体之间确实有一个连接。 (虽然我真的不明白为什么这可能是不稳定行为的任何原因)
好吧,我想我找到了解决这个问题的办法。我做了以下以获得预期结果:
- 首先按非唯一键排序。
- 然后按唯一键排序。
通过这种方式,结果始终处于正确的顺序,并确保了排序和分页。
希望这可以帮助遇到此类问题的人。