2

我是 Java、Eclipse、Google App Engine 和 Datastore 的新手,并且正在编写我的第一个应用程序,以自学一些用于工作和专业开发目的的新技术。

我有一个 Java 应用程序,它成功地从我基于密钥创建的数据存储中保存和检索数据。我现在希望能够根据我的数据存储中的其他信息对元代码进行更一般的查询,例如:

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

为此,我做了一些在线阅读并参考了 O'Reilly 的书Programming 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是我想要提到的。forceresult但是,当我编写代码时,Eclipse 告诉我即使Entity在上面的行中定义了an ,它也无法解析。

result我错过了一个保留字的意义吗?我的代码在其他方面有问题吗?也许我还没有asQueryResultIterable正确理解?我应该如何解释错误信息:

尝试联系服务器时发生错误。
请检查您的网络连接并重试

我希望有人可以为我指明正确的方向,或者给出具体的答案或建议我的学习曲线下一步该往哪里走。

4

1 回答 1

4

您的循环中有错误(;太多:))。尝试这个:

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

因此,您的循环实际上是空的,并且在未定义的result.getProperty(...)地方被调用。forceresult

于 2011-06-27T09:03:26.253 回答