我需要为具有一对多关系的对象列表实现一致且高效的分页。列表中的项目按组显示,组成员的数量因组而异。某些组可能不包含任何成员。寻呼应该由组成员的数量决定。
例如,考虑一个家庭照片目录。以下是规则:
- 每个家庭单元在页面上被分组为一组。
- 同一页面上可以出现任意数量的族。
- 每页应该有大约 10 张照片。
- 全家人必须出现在同一页面上。如果页面上的最后一个家庭超出了 10 张图片的限制,要么将该家庭保留在此页面上,要么将它们显示在下一页上,并始终如一地执行此操作。
- 如果没有家庭成员的照片,家庭分组将显示没有任何照片。由于没有图片,该组将不计入 10 张图片的限制。
- 一个家庭有10张以上的照片是可能的,这种情况应该处理。
请分享开发此算法的任何提示。我也非常感谢任何特定于平台的提示。该应用程序使用 Hibernate 3.3.2 和 Spring 2.5.6。数据库是Oracle 10g。