我正在定义一个查询,在该查询中,一个过滤器可以具有多个值(自然可以转换为OR
)。但是,正如我已经意识到的那样,Objectify中的查询过滤器被聚合到一个AND
操作中,并且版本6中的基础Google Cloud SDK甚至不支持'in'运算符。
我正在尝试使用数据存储区复合过滤器来满足我的需求,因为这有可能用OR运算符聚合谓词,然后将构造的Filter对象传递给Objectify Query.filter()
方法。
现在是问题所在:使用复合过滤器构造的Filter对象不同于Objectify .filter()
方法所接受的对象,后者是StructuredQuery
的嵌套类。
是否可以在Objectify查询中使用复合过滤器?如果是这样,我将不胜感激地举一个例子。
答案 0 :(得分:0)
我认为您正在将新的Cloud Datastore Java客户端库(由Objectify6使用)与旧的Google App Engine SDK(由Objectify5使用)混淆。
旧的GAE SDK支持OR
过滤器。新的(尚未)。您可能希望从以下位置向Google请求此功能:https://github.com/GoogleCloudPlatform/google-cloud-java
顺便说一句:我相信旧版SDK实际上是通过运行两个单独的查询并合并客户端的结果来处理OR
过滤器。如果您急着不想回到原来的GAE SDK(仅适用于GAE Standard),则可以自己做类似的事情。