0

嗨,我只是在玩数据存储,希望有人能告诉我为什么我的简单代码不起作用?我一直在研究如何从数据存储中放置和获取字符串......不幸的是,我的 GAE 能力与我的弱 Java 能力一样弱......

@SuppressWarnings("serial")
public class LoopingProgramServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {


    Key key = KeyFactory.createKey("a","b");        
    String Teststring = "pleasework";
    Entity greeting = new Entity("meh", key);
    greeting.setProperty("teststring", Teststring);     
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    datastore.put(greeting);



    Entity greetings = null;
    resp.setContentType("text/plain");
    resp.getWriter().println("doing something");


    try {
        greetings = datastore.get(key);
        String string = (String) greetings.getProperty("teststring");


        if (string == null) {
            resp.setContentType("text/plain");
            resp.getWriter().println("null");   
            System.out.println("null");
        } else {
            resp.setContentType("text/plain");
            resp.getWriter().println("contains something"); 
            System.out.println("contains something");
        }

        resp.setContentType("text/plain");
        resp.getWriter().println(string);   

    } catch (EntityNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }




}

}

4

1 回答 1

0

您正在使用的Entity构造将Key参数解释为父实体的键。由于没有给出 id 或 keyName (如果您使用此处Entity描述的其他构造函数之一,则会发生这种情况),因此会为问候语生成一个 id 。put

datastore.get(key)正在返回 null,因为它key引用了一个类型为“a”的实体,其 keyName 为“b”,它(我猜)不存在。

于 2013-05-12T01:48:40.967 回答