假设我在GAE Java应用程序中有以下(简化)模型:
Entity project = new Entity("Project")
project.setProperty("name", "test");
和
Entity task = new Entity("Task");
task.setProperty("name", "test");
task.setProperty("project", project.getKey());
如何获取所有引用特定Task
的{{1}}?
我试过
Project
但无济于事。
我使用Datastore查看器检查实际数据,一切都已就绪。
Query q = new Query("Task");
Query.FilterPredicate projectFilter =
new Query.FilterPredicate("project",
Query.FilterOperator.EQUAL,
project.getKey()
);
q.setFilter(projectFilter);
对项目有适当的Task
,并且所有属性都已编入索引。
唯一看似异常的事实是(考虑到我的应用支持多租户),Key
键作为查看器上的命名空间前缀。
这可能是问题,是否有任何解决方案?
非常感谢提前。
答案 0 :(得分:1)
尝试使用project.getKey().getId()
代替
或使用特殊密钥过滤器:Entity.KEY_RESERVED_PROPERTY
这里描述:
https://developers.google.com/appengine/docs/java/datastore/queries#Key_Filters