Java AppEngine HR数据存储是否自动分配负ID?

Java AppEngine HR数据存储是否自动分配负ID?,java,google-app-engine,google-cloud-datastore,Java,Google App Engine,Google Cloud Datastore,我将AppEngine与HR数据存储一起使用,并且我的对象的ID类型为Long(使用Java)。我不自己设置ID,而是让数据存储选择一个新的唯一ID。到目前为止,我只看到正面ID生成 AppEngine是否也分配过负ID?(当然,假设我请求的ID不超过2^63;-)(预分配ID的Python方法)将在传递负值时引发异常。因此,我猜负id键是无效的。否。只会生成正id。在GAE数据存储对象中,会生成两个唯一的值, 一个是键,它是在创建模型对象的实例时生成的&保存(put)操作后,它生成了ID(总是

我将AppEngine与HR数据存储一起使用,并且我的对象的ID类型为
Long
(使用Java)。我不自己设置ID,而是让数据存储选择一个新的唯一ID。到目前为止,我只看到正面ID生成


AppEngine是否也分配过负ID?(当然,假设我请求的ID不超过2^63;-)

(预分配ID的Python方法)将在传递负值时引发异常。因此,我猜负id键是无效的。

否。只会生成正id。

在GAE数据存储对象中,会生成两个唯一的值,
一个是,它是在创建模型对象的实例时生成的&保存(put)操作后,它生成了ID(总是一个正数),当然这两个键在整个数据仓库中都是唯一的。

答案似乎是:可能


在我的测试中,我只看到自动生成的阳性ID,但我能够存储阴性ID(如果手动分配)。除非有人能给我们指出一个定义不同的规范,或者至少有来自AppEngine团队的Google人员说出来,否则我们必须假设他们至少保留在任何时候生成负面ID的权利。因此,我们的代码不能假定生成的ID始终为正。

我能够使用Java存储具有负ID的对象,因此AppEngine数据存储本身支持负ID。然而,它们是否会产生它们的问题还没有得到回答。你说:“永远都是一个正数”。你怎么知道的?这能保证吗?如果是这样,你能参考文档/规范吗?我同意Daniel的观点,如果我们要在代码中假设这一点,我们需要看到一个规范为我们陈述它,这样我们知道我们在未来不会感到惊讶。