ページネーションは、where
を満たすすべての行をカウントするため、結合されたコレクションでは機能しません。 述語(Hibernateはこれとは何の関係もありません。データベースの動作方法です。たとえば、 Oracle rownum
。
これを克服する通常の方法は、サブクエリを使用することです。これにより、rownum
(または使用されるデータベースの同等のもの)は、1つのテーブル(または1対1の関係にある結合テーブル)の選択された行に適用されます。
HQLの場合:
select p from Parent p were p in (select c.parent from Child c where ...)
同等の基準 同様の方法で構築できます。