通过Appengine-Java中的id列表获取实体

时间:2015-02-20 19:18:03

标签: java google-app-engine

我有一个Android应用程序的appengine后端。

在此我想根据他们的' id'

检索多个实体

我已尝试使用WHERE IN查询,如下所示。

"select from MyEntity as MyEntity where id IN ('4538783999459328')"

数据存储区包含MyEntity,其中包含ID为4538783999459328的密钥。 但结果集是空白的。我已尝试使用该实体的其他字段名称,但它可以工作,但无法使用id进行过滤。

还有其他方法吗?

我正在使用Appengine JAVA。

我不想使用EntityManager.find(),因为我想要查找多个ID。

2 个答案:

答案 0 :(得分:1)

两件事:

  1. 您必须在查询中使用__key__而不是id
  2. 实体ID有一种特殊的数据类型 - Key('EntityName', ID)
  3. 因此,您的查询应如下所示:

    select * from MyEntity where __key__ in (Key('MyEntity', 4538783999459328))
    

    另外,请查看GQL文档:https://cloud.google.com/appengine/docs/python/datastore/gqlreference

答案 1 :(得分:0)

所有实现数据存储的框架都可以通过ID列表(Key)选择获取实体,或者上面的GQL帖子如何相同。