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