当我只知道它的id时,如何获取实体的父键?

时间:2015-03-17 09:24:36

标签: java google-app-engine key google-cloud-datastore

我有一个孩子的id,并希望在没有遍历所有实体的情况下获得父实体。

我无法使用KeyFactory.createKey创建Key,因为我不知道父级,我不能在Id上使用过滤器,因为我无法创建密钥。

一个例子可能澄清: - 实体供应商 - 实体产品,其供应商为父母。

如果我知道产品的ID(Key.getId()),如何找到供应商?我错过了什么?

1 个答案:

答案 0 :(得分:0)

你不能,id本身并不足够,因为它与父母有关;例如,以下键:

Key('Supplier', 1, 'Product', 1)
Key('Supplier', 2, 'Product', 1)
Key('Supplier', 1, 'Product', 2)

这是三种独特的产品,但正如您所看到的那样,只知道您正在寻找Product.id == 1并不值得找到合适的产品。

这种情况并没有真正有一个很好的解决方案,除了你已经想到(并排除了)所有的循环,甚至可能有多个供应商(我的方便的例子证明)。

所以你需要更好的设计:)请记住,在父母/子女关系中,唯一有效密钥是完整密钥。