如何从Google Datastore中检索数据?

时间:2014-08-06 13:15:49

标签: java google-app-engine servlets google-cloud-datastore

我使用java servlets。我编写了一个没有错误的代码,但它总是返回一个空列表。 我想从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");



}

1 个答案:

答案 0 :(得分:0)

我纠正了我的问题。我忘了添加名称空间。这是关于如何在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);
}
相关问题