Я слежу за документацией на этом сайте: http://code.google.com/intl/sv-SE/appengine/docs/java/datastore/jdo/queries.html
Оттуда я узнал, как делать запросы, но мне кажется, что я работаю только с одним параметром.Вот как я делаю это успешно:
javax.jdo.Query q1 = pm.newQuery(Player.class);
q1.setFilter("isOpen == true");
List<Player> players = (List<Player>) q1.execute();
, который выбирает мне все объекты Player с логическим значением isOpen == true.Я могу сделать то же самое с Long, который тоже работает.
Вот проблема: При объединении двух условий, подобных этому:
javax.jdo.Query q1 = pm.newQuery(Player.class);
q1.setFilter("isOpen == true && lastPing > 100");
List<Player> players = (List<Player>) q1.execute();
Приложение вылетает.Вот ошибка, которую я получаю:
Необнаруженное исключение из сервлета com.google.appengine.api.datastore.DatastoreNeedIndexException: соответствующий индекс не найден.Рекомендуемый индекс для этого запроса: datastore-index kind = "Player" ancestor = "false" source = "manual" name свойства = "isOpen" direction = "asc" name свойства = "lastPing" direction = "asc" datastore-index
Итак, кто-нибудь знает, почему это происходит?Любая помощь с благодарностью.