我正在将AppEngine与HR数据存储区一起使用,而我的对象具有类型为Long
的ID(使用Java)。我自己没有设置ID,但让Datastore选择一个新的唯一ID。到目前为止,我只看到了生成的正ID。
AppEngine是否也会分配负ID? (假设我当然不要求超过2 ^ 63个ID ;-))
答案 0 :(得分:1)
allocate_id_range(预分配id的Python方法)如果将负值传递给它将抛出异常。所以我猜一个否定的id密钥不是有效的。
答案 1 :(得分:1)
答案似乎是:MAYBE。
在我的测试中,我只看到了正面自动生成的ID,但我能够存储负ID(如果手动分配)。除非有人能够指出我们从AppEngine团队说出的其他规范或至少一些Google员工的说法,否则我们必须假设他们至少保留随时生成否定ID的权利。因此,我们的代码不能假设生成的ID始终为正。
答案 2 :(得分:0)
没有。只会生成正ID。
答案 3 :(得分:0)
在GAE数据存储区对象中生成两个唯一值, 一个是 KEY ,它是在创建模型对象的实例时生成的,&在保存(put)操作之后,它生成了 ID (总是一个正数),而且当然,两者在整个数据库中都是唯一的。