GAE DataStore:使用executeWithArray的任何示例

时间:2011-06-02 00:32:37

标签: java google-app-engine google-cloud-datastore

我正在尝试在Query上应用三个以上的过滤条件。我开始知道使用executeWithArray可以实现这一点。有人可以分享它的例子吗?我需要应用三个以上涉及不同列的过滤器。

2 个答案:

答案 0 :(得分:1)

假设您使用的是Java。 Queries and Indexes页面上有很多示例,它解释了涉及不同过滤器的限制(在“查询限制”下)。快速摘要:

  • 最有可能的问题是,您只能对一列进行不等式过滤。您可以根据需要对任意数量的列进行“=”过滤,但只能执行“!=”,“<”,“< =”,“>”或在一个查询中的单个列上使用“> =”。
  • 如果您有不等式过滤器,并且还要对输出进行排序,则需要先对不等式过滤器中使用的列进行排序。
  • 如果您使用的是交易,则所有查询都必须是“祖先查询” - 您必须将查询限制为只有具有特定父级的实体。

答案 1 :(得分:0)

如果我使用直接条件制作过滤字符串,我可以在查询中应用三个以上的过滤器:

示例:我直接在过滤字符串中添加了isClosed=='N'条件。

query.setFilter("trackerId == trackerParam && projectId == projParam && 
    codeListIds.contains(filId) && isClosed=='N'");

仍然,查询只能最多三个参数:

query.declareParameters("Long trackerParam,Long projParam,Long filId");