我有一个巨大的简单对象列表,存储在数据库中,通过索引列维护元素的位置。我使用hibernate但自己管理列表,因为它太大而无法存储为集合。
对列表进行一些更改(添加,删除,移动)后,我想通过手动更新索引列并通过hibernate插入新的删除元素来持久保存数据库中的更改。
现在,(1)是否有一种有效的算法如何将列表增量与尽可能少的sql语句相结合 - 或者(2)我是否必须记录每个更改并逐步应用它?
答案 0 :(得分:1)
您可以尝试维护巨大列表的段的索引更改。例如,在1000个项目的列表中,如果您:
您可以使用HQL执行以下操作:
我还没准备好研究算法的细节,只是说你需要维护一个收集段列表和每个段的偏移量。