我最近开始使用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)”条目,此查询也会返回这些条目。
我打算发布我的数据存储区的截图,但它不会让我,因为这是我的第一篇文章。
谢谢!
答案 0 :(得分:0)
您是否尝试过使用.addFilter而不是.setFilter?
虽然不推荐使用addFilter,但将setFilter与CompositeFilterOperator.and(filter ...)一起使用会更合适
示例:Datastore Queries文档。