【发布时间】:2012-04-09 16:15:53
【问题描述】:
在一个应用程序中,我有一个包含其他实体列表的实体(假设是一个包含已分配员工列表的事件)
使用 objectify - 我需要找到分配给特定员工的所有事件。
如果查询包含参数,是否有过滤查询的基本方法 - 与
中的查询相反...快速伪代码
findAll(Employee employee) {
...
return ofy.query(Event.class).filter("employees.contains", employee).list();
}
任何帮助将不胜感激
在看到http://groups.google.com/group/objectify-appengine/browse_thread/thread/77ba676192c08e20 之后,我尝试只做 filter("employees", employee) - 但不幸的是,这给我返回了一个空列表
目前我正在做一些非常低效的事情 - 遍历每个事件,遍历员工并将它们添加到一个新列表中,如果它包含给定的员工只是为了让某些东西有效 - 我知道这是不对的
让我补充一件事,
上面的查询实际上并不是这样,我只是使用它,因为我不认为这会有所作为。
Employee 和 Events 位于同一个实体组中,Business 为父级
我使用的实际查询如下
ofy.query(Event.class).ancestor(businessKey).filter("employees", employee).list();
不幸的是,这仍然返回一个空列表 - 那里有祖先(键)会弄乱过滤器吗?
解决方法,employees 字段的索引不正确。
我添加了 datastore-indexes 文件来创建复合索引,但最初是在对员工字段被索引之前添加的值进行测试,这是我在做的愚蠢的事情 - 只是在“业务”上建立一个索引字段和“员工”字段修复了所有内容。 datastore-indexes 文件似乎没有必要,在删除它并再次尝试一切正常之后。
【问题讨论】:
标签: google-app-engine gwt requestfactory objectify