我正在将 AppEngine 与 HR 数据存储区一起使用,并且我的对象具有类型 ID Long
(使用 Java)。我自己没有设置 ID,而是让 Datastore 选择一个新的唯一 ID。到目前为止,我只看到生成了积极的 ID。
AppEngine 是否也曾经分配过负 ID?(当然,假设我请求的 ID 不超过 2^63 个 ;-))
我正在将 AppEngine 与 HR 数据存储区一起使用,并且我的对象具有类型 ID Long
(使用 Java)。我自己没有设置 ID,而是让 Datastore 选择一个新的唯一 ID。到目前为止,我只看到生成了积极的 ID。
AppEngine 是否也曾经分配过负 ID?(当然,假设我请求的 ID 不超过 2^63 个 ;-))
allocate_id_range(预分配 id 的 Python 方法)如果传递负值将引发异常。所以我猜否定的 id 键不是有效的。
答案似乎是:也许。
在我的测试中,我只看到了积极的自动生成的 ID,但我能够存储消极的 ID(如果手动分配)。直到有人可以向我们指出以其他方式定义的规范,或者至少来自 AppEngine 团队的某些 Google 员工大声疾呼,我们必须假设他们至少保留随时生成负 ID 的权利。因此,我们的代码不能假定生成的 ID 始终为正。
不会。只会生成肯定的 ID。
在 GAE 数据存储对象中生成了两个唯一值,一个是KEY,它是在您创建模型对象的实例时生成的,并且在保存(放置)操作之后,它生成了ID(始终为正数),当然两者都是在整个数据存储区中将是唯一的。