2013-05-11 87 views
0

嗨我只是玩弄数据存储,希望有人可以告诉我为什么我的简单代码不起作用?我刚才被玩弄如何把,并从数据存储串...不幸的是我的GAE能力弱一起我弱弱的Java能力......GAE数据存储放入并得到

@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(); 
    } 




} 

}

回答

0

Entity构造,你正在使用的是将Key参数解释为父实体的关键。由于没有给出id或keyName(如果您使用其他Entity构造函数中的其中一个来描述),则会在put时间为问候生成一个id。

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

+0

非常感谢。这是世界上最简单的修复,现在这一切都变得非常有道理......我对被阻碍的道歉表示歉意,我只是想跟随那些并不特定于我想让它工作的教程! – 2013-05-12 10:10:49

+0

没问题。第一次通过时,很容易错过稍后会变得更有意义的一些事情的意义。 – 2013-05-12 18:43:47