Objectify - 同一实体的子类可以具有相同的ID吗?

时间:2015-07-04 11:37:57

标签: java google-app-engine objectify

说我有这些课程

@Entity 
class Animal { @Id Long id; }

@Subclass
class Dog extends Animal {}

@Subclass 
class Cat extends Animal {}

我可以确定狗的ids和猫的ids之间没有重叠。换句话说,给定一个狗的id,这样做是否安全:

ofy().load().type(Animal.class).id(idOfADog)

1 个答案:

答案 0 :(得分:0)

TL; DR:是的。

所有@Subclass es都与声明的@Entity存储的“种类”相同。也就是说,就GAE而言,你所有的狗和猫都是动物。在子类上有一个额外的鉴别器属性告诉Objectify实例化正确的子类,但这不会影响对象标识(它不是键的一部分)。