2011-06-27 57 views
2

我是Java,Eclipse,Google App Engine和数据存储的新手,正在编写我的第一个应用程序,以便为工作和专业开发目的自学一些新技术。查询数据存储时出现错误信息

我有一个Java应用程序,可以根据密钥成功保存并从我创建的数据存储中检索数据。我现在希望能够为元代码,如做基于其他信息,更一般的查询在数据存储区:

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

要做到这一点,我已经做了一些在线阅读,并参考了奥赖利编程Google App Engine。我从示例代码开始,它失败并显示错误消息:

尝试联系服务器时发生错误。
请检查您的网络连接,然后再试一次

我的代码在这一点是:在最后String netinput线发生

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"); 
} 

错误。

数据存储区代码存在,很好 - 我已经成功写入/读取它。

上述示例代码的文档缺乏,但是在这方面的新手,例如:我假设实体的'forceresult'只存在于for循环中,不能从外部引用 - 这很好跟我。

但是,在String newinput行中,我编码为result.getProperty,即使在我看来它应该是forceresult.getProperty,因为这是我想要参考的内容。 然而,当我编码时,Eclipse告诉我,即使已经在上面的行中定义了Entity,它也不能解析forceresult

result一个保留字,我错过了什么意义? 我的代码在其他方面有错吗?也许我不正确理解asQueryResultIterable? 我应该如何解释错误消息:

尝试联系服务器时发生错误。
请检查您的网络连接,然后再试一次

我希望有人能指出我在正确的方向要么在哪里往后走在我的学习曲线一个明确的答案或建议。

回答

4

您在循环中出错(一个;太多:))。试试这个:

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

因此你的循环竟是空的,result.getProperty(...)接到电话之外,其中没有定义forceresult

+0

谢谢你 - 你是多么的明星! – Aenathras