追溯分配appengine中的键范围

时间:2012-01-20 23:38:33

标签: java google-app-engine

我的数据存储区中有大约1.5M的实体。由于我缺乏理解,其中一些实体具有我根据我编写的算法自己生成的ID,而其他实体具有由数据存储区自动分配的ID。我现在明白这最终会导致冲突,因为id分配器不知道我自己生成的id。

因此。现在我想保存那些带有我的id的实体,以免被意外覆盖。我可以直接浏览我拥有的每个实体并使用allocateKeyRange作为其ID吗?我很久以前就停止生成自己的ID了 - 只有少数实体处于危险之中 - 但我不知道哪些实体存在危险。保存我的风险实体的最佳方法是什么?

编辑:我应该注意到我确实存储了对其他实体中的id的引用,因此如果没有大量的级联查找,很难更改实体的id。

1 个答案:

答案 0 :(得分:2)

正如评论中所讨论的,如果ID范围不同,您应该能够使用DatastoreService.allocateIdRange来保留已手动分配给实体的ID。

相关问题