Ancestor Key和Parent Key的明显区别是什么?
它基本相同吗? 它如何以不同方式影响get()方法和Query
方法?
从GAE KeyFactory
课程中,我们只能看到Key
家长,而且没有这样的祖先Key
。
public static Key createKey(Key parent, String kind, String name) {
return createKey(parent, kind, name, (AppIdNamespace)null);
}
然后使用这样的键:
Entity e = new Entity(key); // key may include a parent Key
在典型查询中,例如在留言簿应用中。我们可以将密钥作为祖先,因此我们可以使用不同的留言簿来保存实体,如:
Key guestbookKey = KeyFactory.createKey("Guestbook", guestbookName);
Query q = new Query(kind, guestbookKey); // guestbookKey = ancestor
那么父母和祖先的区别是什么,它们基本上是一样的,没有任何区别,只是用不同的符号来表达同样的东西?
答案 0 :(得分:5)
Parent
表示直接父级。 Ancestor
是一个更通用的术语,包括直系父母,父母的父母,父母父母的父母等等 - 与英语完全相同。
"实体组",您可以要求进行原子交易的那种,需要由具有共同祖先的实体组成 - 他们不会&#39 ; t需要所有人都有相同的(立即)父母,但他们的下降线确实需要在一个共同的祖先以某种方式相遇"在线#" 34; (所涉及的所有实体的步骤数量不一定相同)。
当您createKey
基于parent
键时,那个父键可能依次使用其自己的父级 - 如果是这样,那么父母的父母本身并不是你现在所创造的父母,但 是其祖先。