使用objectify,我使用App Engine自动生成的id为我的实体创建id,如下所示:
@id
Long ID;
我将null放在变量ID中,因此App Engine会自动为我的实体生成id。
通过客观化功能创建密钥:
Key.create(java.lang.Class<? extends T> kindClass, long id)
我能否得出结论,没有任何父关系的实体的自动生成id是唯一的?
答案 0 :(得分:4)
数据存储区中的每个实体都有一个唯一标识它的密钥。该 key由以下组件组成:
- 实体的名称空间,允许多租户
- 实体的类型,为数据存储区查询的目的对其进行分类
- 单个实体的标识符,可以是键名字符串和整数数字ID
- 在Datastore层次结构中定位实体的可选祖先路径
这些组件的结合是一个独特的关键。 因此,自动生成策略保证ID在同一名称空间| parent | kind | id 中唯一,或仅 kind | id 如果没有父母
来源:https://cloud.google.com/appengine/docs/java/datastore/entities
答案 1 :(得分:3)
自动生成的ID对于种类和父级是唯一的。对于任何给定类型和null(缺席)父级,分配器将分配唯一值。