我已经设置好应用引擎,它可以在我的本地主机上运行,我打电话
Entity greeting3 = new Entity(KeyFactory.createKey("World", "world3"));
greeting3.setProperty("raw", "2.2 # # # .");
datastore.put(greeting3);
添加我的实体,我可以在控制台中看到它们已添加。然后我用
Query q = new Query("World");
PreparedQuery pq = datastore.prepare(q);
for (Entity result : pq.asIterable()) {
resp.getWriter().println(result);
}
检索实体。它在本地主机上运行完美,但在服务器上我无法收到所有添加的实体的列表。尽管第一个代码确实添加了它们。我也用
e = datastore.get(KeyFactory.createKey("World", req.getParameter(k)));
resp.getWriter().println(e.getProperty("raw"));
在本地主机上它也能正常工作,但在互联网上,它会抛出“找不到实体异常”。我试过手动添加数据存储索引,但没有帮助。 我整天都在工作,现在真的让我很沮丧 :( 我也很确定它昨天有效...... 请帮忙 谢谢
最佳答案
如果在将实体放入数据存储区后很快运行查询,则此问题可能是因为应用引擎数据存储区不是“immediately consistent”。是“eventually consistent”
您可以在运行查询之前等待几秒钟(也许 10 秒?)来测试它。
如果这是错误,那么您应该查看 docs 中的应用引擎数据存储概述。
关于java - Appengine 无法从数据存储中检索实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15706508/