2011-06-02 34 views
1

我想在Query上應用三個以上的過濾條件。我開始知道這可以使用executeWithArray。有人可以分享它的例子嗎?我需要應用三個以上的涉及不同列的過濾器。GAE DataStore:使用executeWithArray的任何示例

+0

您好,我懷疑你會得到更好的反應,如果你要你的問題切換到「GAE數據存儲:。...「 – ianmayo 2011-06-02 09:00:23

+0

哪語言:Java或Python?您應該標記語言。 – mgiuca 2011-06-03 01:54:38

+0

我正在使用Java。 – 2011-06-04 00:18:56

回答

0

我能如果我使用直接標準過濾字符串申請查詢超過三個濾:

例子:我的過濾字符串中直接添加isClosed=='N'標準。

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

儘管如此,查詢可以最多三個參數只有:

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

假設您正在使用Java。 Queries and Indexes頁面上有很多示例,它解釋了涉及不同過濾器的限制(在「限制查詢」下)。快速總結:

  • 最有可能的問題是,您只能在一列上使用不等式過濾器。您可以在任意數量的列上執行「=」過濾器,但只能在一個查詢的單個列上執行「!=」,「<」,「< =」,「>」或「> =」 。
  • 如果您有一個不等式過濾器,並且還對輸出進行排序,則需要先對不等式過濾器中使用的列進行排序。
  • 如果您使用的是事務,則所有查詢都必須是「祖先查詢」 - 您必須將查詢限制爲僅具有某個父級的實體。
+0

感謝您的回覆,我已經看到鏈接,並且找不到答案,我沒有任何不平等標準,標準,但我有超過三,四。 – 2011-06-04 00:22:54

+1

那麼,你有一個實際的問題?因爲你沒有說過,如果它不是我rking;你根本沒有問過任何問題。你究竟想要做什麼,出了什麼問題? – mgiuca 2011-06-05 09:10:43