Java GAE数据存储复合筛选器错误

Java GAE数据存储复合筛选器错误,java,google-cloud-datastore,Java,Google Cloud Datastore,当我像这样设置数据存储过滤器时,实际发生了什么 Query("Product").setFilter(filter1).setFilter(filter2); 我发现结果是非此即彼 我还尝试使用CompositeFilterOperator.and,但我得到了DatastoreNeedIndexException,在那里它应该返回与和复合筛选器匹配的内容。App engine在实体的每个属性上预定义了一个简单索引。应用程序引擎可以在名为datastore-indexes.xml的索引配置文件中

当我像这样设置数据存储过滤器时,实际发生了什么

Query("Product").setFilter(filter1).setFilter(filter2);
我发现结果是非此即彼


我还尝试使用CompositeFilterOperator.and,但我得到了DatastoreNeedIndexException,在那里它应该返回与和复合筛选器匹配的内容。

App engine在实体的每个属性上预定义了一个简单索引。应用程序引擎可以在名为datastore-indexes.xml的索引配置文件中定义更多自定义索引,该文件在应用程序的/war/WEB-INF/appengine生成目录中生成

你可以看看这个博客:


my filter1位于字符串上,filter2位于intDatastoreNeedIndexException上,这意味着您缺少执行查询的索引。将它添加到datastore-indexes.xml中,这将解决错误。此外,如果我没有错的话,您的第二个setFilter将覆盖第一个,因此您将只搜索第二个过滤器?所以我需要创建与我的查询匹配的索引?我认为你是对的。第二个滤清器将超越第一个滤清器。