在GQL过滤器中使用List

时间:2011-07-05 17:38:06

标签: java google-app-engine gql gqlquery

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

如果我有班级

public class Obj{

    @Persistent
    private Long name;

}

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

1 个答案:

答案 0 :(得分:1)

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

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和!=运算符在后台使用多个查询。例如,IN运算符为列表中的每个项执行单独的基础数据存储区查询。返回的实体是所有基础数​​据存储区查询的交叉产品的结果,并且是重复数据删除的。任何单个GQL查询最多允许30个数据存储区查询。