繁体   English   中英

使用Objectify,父项和子项进行查询

[英]Query with Objectify, parent and children

我想知道是否可以在同一查询中查询班级父亲和儿子。

@Entity
public class Blog {
    @Getter
    @Setter
    @Id
    String id;

    @Getter
    @Setter
    int popularity;
}

@Entity
public class Post {
    @Id
    @Getter
    @Setter
    String id;

    @Getter
    @Setter
    String title;

    @Getter
    @Setter
    long published;

    @Getter
    @Setter
    String locale;

    @Getter
    @Setter
    @Load
    private Ref<Blog> parent; // or @Parent?

}

这可能吗? - >

查询列表类型“发布”>过滤区域设置“发布”>发布的订单“发布”> 订单受欢迎程度“博客”

谢谢。

你不能。 这将是一个联接,并且应用引擎不支持查询中的联接。 您需要将要过滤的数据复制到Post实体上,或者执行2个单独的查询并在内存中进行设置的交集。

如果将“发布”中的“引用”字段设为@Parent字段,则可以在Blog上执行ancestor()查询并获取所有内容(ancestor()包括父实体)。 但是,除非您通过类型(即Post)进行过滤,否则您将获得该实体组中的所有内容。

这种微优化几乎毫无意义。 它不会为您节省任何金钱,也不太可能为您节省任何明显的延迟,尤其是如果您@Cache the Blog。

当然可以! 为此,请将“流行度”字段添加到“邮政”中。 如果Blog的流行程度发生变化,则每天或每周都必须更新该值。

信息的重复是典型的,在noSql数据库中很常见,不要想那么多:永远想一想:“使所有数据准备就绪(以最少的请求计数)的方式进行读取”,在noSql中同步数据更新是很常见的dbs支持cassandra或数据存储。 尝试阅读有关该主题的一些文档

@adevine,你不能说不! 如果你不知道

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM