2017-09-08 8 views
0

ユニークでない属性の並べ替えにcriteria.addOrder(Order.asc("sortAttribute"))を使用すると、私は奇妙な動作を見ます。返される結果は重複しています。Hibernate Criteria並べ替えとページ付けが機能しない

sortAttributeがのユニークキーの場合は、同じが正常に動作します。

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

また、ここでは2つのエンティティ間で結合が行われています。 (なぜこれが不安定な行動の理由であるのか実際にはわかりませんが)

答えて

0

まあ、私はこの問題の解決策を見つけたと思います。

  • 非ユニークキーにまずソート:私が期待される結果を得るために、次のでした。
  • 次に、ユニークキーをソートします。

このようにして、結果は常に適切な順序になり、順序付けとページ付けが保証されました。

これは、このような問題に遭遇した人に役立つことを期待しています。

関連する問題