簡體   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