【问题标题】:Objectify query doesn't work with ancestor对象化查询不适用于祖先
【发布时间】:2014-10-16 06:56:40
【问题描述】:

我有一个作为实体存储的 ObjectS 类。在这个 ObjectS 中,我通过以下方式将 ObjectP 声明为父级。

@Parent
@ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
private Key<ObjectP> objectPKey;

然后,我的 api 如下所示,

@ApiMethod(
        name = "getObjectPChildren",
        path = "getObjectPChildren",
        httpMethod = HttpMethod.POST
)
public Collection<ObjectS> getObjectPChildren(@Named("websafeObjectPKey") final String websafeObjectPKey)
         {

    Key<ObjectP> objectPKey = Key.create(websafeObjectPKey);
    Query<ObjectS> q = ofy().load().type(ObjectS.class)
            .ancestor(objectPKey);
    return q.list();
}

当我使用 websafeObjectPKey 创建实体 ObjectS(使用 API 资源管理器中的一些其他 API)时,我可以在本地数据存储中看到实体。但是,上面的查询返回空的意思是它说没有实体:-(。有趣的是,如果我将查询修改为以下

Query<ObjectS> q = ofy().load().type(ObjectS.class);

它确实返回了数据存储区中的所有实体!这意味着数据存储不知何故不知道祖先关系。我想知道我做错了什么?

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore objectify


    【解决方案1】:

    如果它对其他人有帮助,我发现我在创建 ObjectS(构造函数)时,没有传递 ObjectP 的正确键。修复它,现在可以正常工作了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 2023-03-03
      • 2019-03-20
      • 1970-01-01
      • 2020-01-14
      相关资源
      最近更新 更多