gpt4 book ai didi

entity-framework - 在 Objectify 中,如何在不知道父键的情况下通过 ID 加载实体?

转载 作者:太空宇宙 更新时间:2023-11-03 15:26:24 25 4
gpt4 key购买 nike

我在objectify中有一个实体组,典型的是SomeParentClass和SomeChildClass。我想做这样的事情来从数据存储区加载 SomeChildClass 的实例。

ofy().load.type(SomeChildClass.class).id(idOfSomeChildClassInstace);

这将返回未找到的内容。似乎您需要知道 SomeChildClass 的父级才能从数据存储中获取它。我知道这行得通。

Key<SomeChildClass> k = Key.create(someParentClass.generateKey(), SomeChildClass.class, idOfSomeChildClassInstace);
ofy().load().key(k).now;

如果我想在不知道父级的情况下加载 SomeChildClass 的实例,而只需要 SomeChildClass 的 ID,该怎么办。

最佳答案

你不能那样做 - 实体的实际完整标识符是其每个祖先的种类和 ID 以及它自己的种类和 ID。这就是为什么构建完整 key 有效,但仅使用子实体 ID 无效的原因。另一种看待它的方式是,id 仅在同一父级的 sibling 之间是唯一的。

解决问题的最简单方法是为您的子实体生成 key ,然后为其获取“网络安全字符串”。此字符串包含实体及其所有父实体的所有信息,可用于完全重构完整 ID。

使用对象化:

String websafeKey = Key.create(parentKey, Entity.class, id).getString();
Key<Entity> key = Key.create(websafeKey);

如果需要,您也可以使用低级 API 执行此操作。

关于entity-framework - 在 Objectify 中,如何在不知道父键的情况下通过 ID 加载实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19445503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com