为什么我的应用引擎ID生成器策略产生了巨大的数字?

时间:2013-12-02 22:49:58

标签: java google-app-engine id-generation

我只是将我的代码从一台机器移动到另一台机器,发布它并突然创建了一个带有“576728208506880”键的条目,所以我从原始机器重新发布了完全相同的代码并创建了另一个字段,这次是创建的密钥是“21134006”

任何人都可以解释为什么会这样吗?!

谢谢, Ĵ

2 个答案:

答案 0 :(得分:2)

这是完全正常的。 App Engine会生成0到2 ^ 53之间的数字ID,并将它们分散到整个范围内:

http://googlecloudplatform.blogspot.ca/2013/05/update-on-datastore-auto-ids.html

您可以在设置中使用旧版自动ID策略来解决它。

答案 1 :(得分:1)

不会按顺序生成Appengine数据存储区ID。

(想象一下,你在同一秒内创建了1000个新实体 - 简短的回答是AppEngine需要一个策略来生成不会发生冲突的ID。)

有关详细信息和可能的解决方案,请参阅this answer

有关详细信息,请参阅AppEngine文档的"Assigning Identifiers"