![](/img/trans.png)
[英]How to correctly retrieve int from a Google App Engine datastore (Java)?
[英]How to retrieve data from the Google Datastore?
我使用Java Servlet。 我寫了沒有錯誤的代碼,但是它總是返回一個空列表。 我想從Servlet更新數據存儲。 我只想閱讀實體。 我附上我的代碼,告訴我問題出在哪里。
我總是得到數據存儲是空的,這只是一個測試代碼,即使這似乎也行得通。 在互聯網上搜索了一周。 都是徒勞的。
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
resp.setContentType("text/plain");
resp.getWriter().println("Hello, world");
DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();
resp.getWriter().println(datastoreService.getIndexes());
if (datastoreService.getIndexes().isEmpty())
resp.getWriter().println("the data store is empty");
Query query = new Query("IMAGES");
PreparedQuery pq = datastoreService.prepare(query);
for (Entity entity :pq.asIterable())
{
resp.getWriter().println(entity.getKind() );
resp.getWriter().println(entity.getAppId() );
resp.getWriter().println(entity.getKey() );
}
if (!pq.asIterable().iterator().hasNext())
resp.getWriter().println("the data store is empty");
}
我糾正了我的問題。 我忘記添加名稱空間。 這是有關如何在GAE DataStore中設置名稱空間的代碼段。
// Set the namepace temporarily to "abc"
String oldNamespace = NamespaceManager.get();
NamespaceManager.set("abc");
try {
... perform operation using current namespace ...
} finally {
NamespaceManager.set(oldNamespace);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.