我是Java,Eclipse,Google App Engine和Datastore的新手,我正在编写我的第一个应用程序来自学一些用于工作和专业开发目的的新技术。
我有一个Java应用程序,可以成功保存和检索我根据密钥创建的数据存储区中的数据。我现在希望能够根据我的数据存储区中的其他信息为元代码执行更多常规查询,例如:
select key_column from my datastore where other_column = "data to be searched"
为实现这一目标,我做了一些在线阅读并参考了O'Reilly的书籍编程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
?
我该如何解释错误信息:
尝试联系服务器时发生错误 请检查您的网络连接,然后重试
我希望有人可以指出我正确的方向,或者在我的学习曲线中找到明确的答案或建议。
答案 0 :(得分:4)
你的循环中有一个错误(;
太多:))。试试这个:
for (Entity forceresult : pq.asQueryResultIterable()) {
// ^ ; was here
String newinput = (String) result.getProperty("ForceCode");
}
因此,你的循环实际上是空的,result.getProperty(...)
被调用到外面,其中forceresult
未定义。