Appengine查询似乎忽略了我的一个过滤器(Java)

时间:2013-07-07 01:07:03

标签: java google-app-engine filter datastore

我最近开始使用Appengine,到目前为止,一切都进展顺利。我在查询上多次使用了两个过滤器,但是使用第三个过滤器,查询似乎忽略了我的一个过滤器。无论我设置过滤器的顺序如何,它总是被忽略的过滤器。被忽略的是“房间”过滤器。

这是我的代码:

Query q = new Query("Schedule").setFilter(FilterOperator.EQUAL.of("FranchiseKey", "Franchise(5)"))
            .setFilter(FilterOperator.EQUAL.of("Room", "Room(81)"))
            .setFilter(FilterOperator.EQUAL.of("Date", date));
    PreparedQuery pq = datastore.prepare(q);
    List<Entity> results = pq.asList(FetchOptions.Builder.withDefaults());

我的数据存储区中还有“Room(82)”条目,此查询也会返回这些条目。

我打算发布我的数据存储区的截图,但它不会让我,因为这是我的第一篇文章。

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用.addFilter而不是.setFilter?

虽然不推荐使用addFilter,但将setFilter与CompositeFilterOperator.and(filter ...)一起使用会更合适

示例:Datastore Queries文档。