1

我最近开始使用 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)”的条目,这个查询也返回了这些条目。

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

谢谢!

4

1 回答 1

0

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

尽管 addFilter 已被弃用,因此将 setFilter 与 CompositeFilterOperator.and(filter ...) 一起使用会更合适

示例:数据存储查询文档。

于 2013-07-07T14:20:21.670 回答