gpt4 book ai didi

java - 对象化 - 给定父级的所有子级

转载 作者:行者123 更新时间:2023-11-30 03:08:25 27 4
gpt4 key购买 nike

我正在使用 objectify 和 Google 云数据存储。

我正在寻找一种方法来获取 parent 的所有 child (没有特定类型或种类)。

我知道祖先函数。

我用过这个

ofy().load().ancestor(entity).list();

这给了所有的子孙(我不想要它)。

在此示例中,A 是 1、2 和 3 的父级。 1 是 m 的父级

   A / | \1  2  3|     m     

我想要 {1 ,2 ,3} 的数据,而不是 {1 ,2 ,3, m }

您知道如何获得更准确的结果吗? (没有孙子)

最佳答案

对此没有优雅的解决方案,我怀疑您正在滥用@Parent。在数据存储中创建grand@Parent关系的情况应该非常非常罕见。数据存储中的大多数层次关系最好用传统的外键关系来表示。

但是,如果您下定决心,一种解决方案是使 1、2 和 3 成为同一公共(public)类型的所有多态对象。那么你可以这样查询:

ofy().load().type(BaseType.class).ancestor(parent)

拥有查询类型的另一个优点是您现在可以应用过滤器(无类查询不能有过滤器):

ofy().load().type(BaseType.class).ancestor(parent).filter("arbitraryField", value)

如果您希望排除的值很少见,另一种选择是无论如何都获取它们并将其过滤掉。

关于java - 对象化 - 给定父级的所有子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34181036/

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