Оператор «ИЛИ» в Google App Engine (Java) - PullRequest
1 голос
/ 30 марта 2012

Я использую GAE в Java, у меня есть таблица данных "Person", и мне нужно сделать что-то вроде:

SELECT * FROM PERSON WHERE NAME="MIKE" OR AGE=50

Мой код строит "И", я не знаю, как построить предложение с помощью ИЛИ

Query query = new Query(getEntityKind(), getRootEntityKey());
query.addFilter("name", FilterOperator.EQUAL, "Mike");
query.addFilter("age", FilterOperator.EQUAL, 50);

Есть идеи?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 30 марта 2012

В запросах GAE нет оператора OR.Единственный способ - выполнить два запроса и затем объединить результаты.

Обновление: начиная с 1.7.0, GAE поддерживает OR запросов через CompositeFilterOperator.В основном он выполняет параллельные запросы, а затем И / ИЛИ их на сервере.Стоимость аналогична выполнению отдельных запросов и их слиянию на клиенте, но при этом экономится время на обратную передачу.

0 голосов
/ 31 марта 2012

Вы можете сделать ИЛИ в JDO или JPA - но это немного хитрость, потому что фактически переводит ваш запрос в запрос IN. Это может дать вам некоторые идеи о том, как переписать ваш запрос.

Ознакомьтесь с окончанием этого блога: http://gae -java-persistence.blogspot.co.uk / 2009/12 / query-with-and-in-filters.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...