Java 如何从Google数据存储中检索数据?

Java 如何从Google数据存储中检索数据?,java,google-app-engine,servlets,google-cloud-datastore,Java,Google App Engine,Servlets,Google Cloud Datastore,我使用Javaservlet。我写了一个没有错误的代码,但它总是返回一个空列表。 我不想从servlet更新数据存储。我只想读实体。我会附上我的密码告诉我哪里出了问题 我总是得到数据存储是空的。这只是一个测试代码。即使这样似乎也能工作。在网上搜索了一周。一切都是徒劳的 public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp)

我使用Javaservlet。我写了一个没有错误的代码,但它总是返回一个空列表。 我不想从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数据存储中设置名称空间的片段

// Set the namepace temporarily to "abc"
String oldNamespace = NamespaceManager.get();
NamespaceManager.set("abc");
try {
  ... perform operation using current namespace ...
} finally {
  NamespaceManager.set(oldNamespace);
}

这是已部署的还是正在devserver中运行?另外,如果你使用谷歌管理工具,你能在数据存储查看器中看到实体吗?是的,它已经部署。我部署它是为了学习。我确实使用开发人员控制台在数据存储中添加了实体。当查询求值时,它总是返回空。