com.google.appengine.api.datastore.Query.FilterOperator枚举没有NOT_IN值。所有其他运算都是可能的(相等,不相等以及所有不平等)。是否可以创建具有这种行为的FilterPredicate(例如,"id", notIn(), new int[] { 3, 4, 7 },其中notIn()是使查询返回所有值的东西,除了在给定列表中找到其ID的值)?如果没有,他们该如何查询数据存储库?例如,否定FilterPredicate之类的东西。

最佳答案

据我所知,服务器类型不支持这种查询。在客户端进行模拟的最佳选择是合并三个查询的结果:一个查询小于集合最小值的元素,一个查询大于集合最大值的元素,以及一个查询[min..max]的元素。在客户端代码中执行not in

(已添加)您可以并行执行所有三个查询,以节省时间。如果任何查询返回足够多的实体以占用内存或超过时间限制,那么挑战就将出现。

关于java - FilterOperator不在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30353040/

10-12 06:01