Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在GQL过滤器中使用列表_Java_Google App Engine_Gql_Gqlquery - Fatal编程技术网

Java 在GQL过滤器中使用列表

Java 在GQL过滤器中使用列表,java,google-app-engine,gql,gqlquery,Java,Google App Engine,Gql,Gqlquery,如何使用列表作为过滤器在GQL中进行选择 如果我有课 public class Obj{ @Persistent private Long name; } 如何获取名称不在列表中的所有Obj?您可以通过将所有筛选器链接在一起来获得结果 SELECT * FROM User where email != 'xxx@gmail.com' and email != 'yyy@gmail.com' and email != 'zzz@gmail.com' Python代码 q =

如何使用列表作为过滤器在GQL中进行选择

如果我有课

public class Obj{

    @Persistent
    private Long name;

}

如何获取名称不在列表中的所有Obj?

您可以通过将所有筛选器链接在一起来获得结果

SELECT * FROM User where email != 'xxx@gmail.com' and email != 'yyy@gmail.com' and email != 'zzz@gmail.com'
Python代码

q = User.all()
for i in ilist:
    q = q.filter("email = ", i)
但是您可能需要知道这种查询有一些限制

注意:输入和!=操作员在幕后使用多个查询。例如,IN运算符为列表中的每个项目执行单独的底层数据存储查询。返回的实体是所有底层数据存储查询的叉积结果,并且是重复数据消除的。任何单个GQL查询最多允许30个数据存储查询


谢谢@lucemia,但我已经读过了,本教程对我没有帮助(好的,顺便问一下,“使用列表作为过滤器”是什么意思?您想根据实体的ListProperty筛选实体?或者您想使用列表作为条件?我对这个问题做了一些编辑以澄清它?通过排除某些名称,您将过滤掉多少百分比的结果?检索所有结果并排除检索后不需要的结果可能会更有效。并且h我已经在使用这个解决方案,但我想知道如何使用值列表进行过滤。你可以通过“in”条件在列表中获取OBJ。但是,我不认为有办法直接获取不在列表中的OBJ。