私は持っており、エンティティはそれを呼び出すことができEntity
、Child
コレクションがありChildren
ます。ユーザーがEntity
情報を持っている画面とコレクションのリストがありChildren
ますが、そのコレクションは非常に大きくなる可能性があるため、ページングの使用を考えていました:最初の20要素を取得し、ユーザーが次の場合にのみ遅延ロードします次のボタンを明示的に押します。
だから私はエンティティリポジトリでこの署名を持つ関数を作成しました:
IEnumerable<Child> GetChildren(Entity entity, int actualPage, int numberOfRecordsPerPage)
Aggregate ルート エンティティではなく、子コレクションで setfirstresult と setmaxresult を使用する必要があります。しかし、これら 2 つの構成を使用すると、常に HQL/Criteria クエリのエンティティ タイプを参照します。
他の代替手段は、タイプの HQL/Criteria クエリを作成しChild
、最大値と最初の結果を設定してから、Entity Children コレクションにあるものを (サブクエリを使用して) フィルター処理することです。しかし、私はこのフィルターを行うことができませんでした。双方向の関連付け (親エンティティを参照する子) である場合は、より簡単になります。
助言がありますか?
どれでも