Сообщение об ошибке при запросе хранилища данных - PullRequest
2 голосов
/ 27 июня 2011

Я новичок в Java, Eclipse, Google App Engine и Datastore и пишу свое первое приложение, чтобы научить себя новым технологиям как для работы, так и для целей профессиональной разработки.

У меня есть приложение на Java, котороеуспешно сохраняет и извлекает данные из хранилища данных, которое я создал на основе ключа.Теперь я хочу иметь возможность выполнять более общие запросы на основе другой информации в моем хранилище данных для метакода, такой как:

select key_column from my datastore where other_column = "data to be searched"

. Для этого я провел некоторое онлайн-чтение и сослался на O'Reilly book Программирование Google App Engine .Я начал с примера кода, и он завершается с сообщением об ошибке:

Произошла ошибка при попытке связаться с сервером.
Проверьте подключение к сети и повторите попытку

Мой код на данный момент:

Query q = new Query("Force");
q.addFilter("ForceName", Query.FilterOperator.EQUAL, input);
PreparedQuery pq = datastore.prepare(q);
for (Entity forceresult : pq.asQueryResultIterable()); {
   String newinput = (String) result.getProperty("ForceCode");
}

Ошибка возникает в последней строке String netinput.

Код хранилища данных существует и исправен - я успешно написал / прочиталотсюда.

Документация по приведенному выше образцу кода, однако, отсутствует для новичка в этой области, например: я предполагаю, что сущность 'forceresult' существует только внутри цикла for и на нее нельзя ссылаться извнеэто - это нормально для меня.

Однако в строке String newinput я кодировал result.getProperty, хотя мне кажется, что это должно быть forceresult.getProperty, поскольку это то, что я хочу сослатьсяк.Однако, когда я кодирую это, Eclipse говорит мне, что он не может разрешить forceresult, даже если в строке выше определено Entity.

Является ли result зарезервированным словом, значение которого я пропустил?Мой код неверен в каком-либо другом отношении?Возможно, я не совсем правильно понимаю asQueryResultIterable?Как следует интерпретировать сообщение об ошибке:

Произошла ошибка при попытке связаться с сервером.
Пожалуйста, проверьте подключение к сети и повторите попытку

Я надеюсь, что кто-томожет указать мне правильное направление либо с конкретным ответом, либо с советом, куда идти дальше в моей кривой обучения.

1 Ответ

4 голосов
/ 27 июня 2011

В вашем цикле есть ошибка (; слишком много :)). Попробуйте это:

for (Entity forceresult : pq.asQueryResultIterable()) {
//                                                   ^ ; was here
  String newinput = (String) result.getProperty("ForceCode");
}

Таким образом, ваш цикл был фактически пуст, и result.getProperty(...) вызвали снаружи, где forceresult не определено.

...