【问题标题】:Google App Engine Ancestor QueryGoogle App Engine 祖先查询
【发布时间】:2012-06-01 22:53:53
【问题描述】:

我显然对 GAE 祖先查询应该如何工作感到困惑。我的理解是祖先查询应该返回所有后代,而不仅仅是直系子代。然而,如果我按如下方式修改开发人员指南中的示例,我只检索直系子级,而不是孙级。我错过了什么?

        Entity person = new Entity("Person", "tom");

        Entity weddingPhoto = new Entity("Photo", person.getKey());
        weddingPhoto.setProperty("imageUrl",
                                 "http://domain.com/some/path/to/wedding_photo.jpg");

        Entity babyPhoto = new Entity("Photo", person.getKey());
        babyPhoto.setProperty("imageUrl",
                              "http://domain.com/some/path/to/baby_photo.jpg");

// 添加这个孙子:

        Entity grandbabyPhoto = new Entity("Photo", babyPhoto.getKey());
        grandbabyPhoto.setProperty("imageUrl",
                              "http://domain.com/some/path/to/grandbabyPhoto.jpg");

        Entity dancePhoto = new Entity("Photo", person.getKey());
        dancePhoto.setProperty("imageUrl",
                               "http://domain.com/some/path/to/dance_photo.jpg");

        Entity campingPhoto = new Entity("Photo");
        campingPhoto.setProperty("imageUrl",
                                 "http://domain.com/some/path/to/camping_photo.jpg");
        getDatastore().put(
           java.util.Arrays.asList(person, weddingPhoto, babyPhoto, dancePhoto, campingPhoto));

        Query userPhotosQuery = new Query("Photo");
        userPhotosQuery.setAncestor(person.getKey());

        // This returns weddingPhoto, babyPhoto and dancePhoto, but
        // not grandbabyPhoto --- why???
        List<Entity> results = 
              getDatastore().prepare(userPhotosQuery).asList(
                 FetchOptions.Builder.withDefaults()); 

非常感谢您提供的任何帮助!

【问题讨论】:

    标签: java google-app-engine ancestor


    【解决方案1】:

    因为您的put(..) 语句不包含grandbabyPhoto,所以它没有被保存。

    【讨论】:

    • 显然,@peter。谢谢。令人惊奇的是,您可以看到和看不到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多