GAE DataStore: любой пример использования executeWithArray - PullRequest
1 голос
/ 02 июня 2011

Я пытаюсь применить более трех критериев фильтра к запросу.Я узнал, что это возможно с помощью executeWithArray.Может кто-нибудь поделиться примером этого?Мне нужно применить более трех фильтров с участием разных столбцов.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Если вы используете Java.На странице Запросы и индексы приведено множество примеров, в которых объясняются ограничения, связанные с различными фильтрами (в разделе «Ограничения для запросов»).Краткая сводка:

  • Скорее всего, проблема в том, что фильтр неравенства можно использовать только для одного столбца.Вы можете использовать фильтр "=" для любого количества столбцов, но вы можете использовать только "! =", "<", "<=", ">" Или "> =" для одного столбца в одном запросе..
  • Если у вас есть фильтр неравенства, и вы также сортируете выходные данные, вам нужно сначала отсортировать столбец, используемый в фильтре неравенства.
  • Если вы используете транзакции, все запросы должныбыть "запросами предка" - вы должны ограничить запрос только сущностями с определенным родителем.
0 голосов
/ 12 июня 2011

Я могу применить более трех фильтров в запросе, если я создаю строку фильтра, используя прямые критерии:

Пример: я добавил isClosed=='N' критерии непосредственно в строку фильтра.

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

Тем не менее, запрос может максимум три параметра:

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