1 対多の関係を持つオブジェクトのリストに対して、一貫性があり効率的なページネーションを実装する必要があります。リスト内のアイテムはグループで表示され、グループ メンバーの数はグループによって異なります。一部のグループにはメンバーが含まれていない場合があります。ページングは、グループ メンバーの数によって決定する必要があります。
たとえば、家族の写真のディレクトリについて考えてみましょう。ルールは次のとおりです。
- 各ファミリー ユニットは、ページ上でセットとしてグループ化されます。
- 同じページに任意の数のファミリを表示できます。
- 1 ページあたり約 10 枚の写真が必要です。
- 家族全員が同じページに表示される必要があります。ページの最後のファミリが 10 枚の制限を超える場合は、そのファミリをこのページに残すか、次のページに表示するかのいずれかを行い、これを一貫して行います。
- 家族の写真がない場合、家族グループは写真なしで表示されます。写真がないため、このグループは 10 枚の写真の制限にはカウントされません。
- 10 枚以上の写真を持つ家族がいる可能性があり、この場合は処理する必要があります。
このアルゴリズムを開発するためのヒントを共有してください。プラットフォーム固有のヒントもいただければ幸いです。アプリケーションは、Hibernate 3.3.2 および Spring 2.5.6 を使用します。データベースは Oracle 10g です。