您好,我只是在玩数据存储区,并希望有人可以告诉我为什么我的简单代码不起作用?我刚刚玩弄了如何从数据存储中放入和获取字符串...不幸的是,我的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();
}
}
}
答案 0 :(得分:0)
您正在使用的Entity
构造将Key
参数解释为父实体的键。由于没有给出id或keyName(如果你改为使用here描述的其他Entity
构造函数之一),将会在put
时为问候语生成一个id。 / p>
datastore.get(key)
返回null,因为key
指的是keyName为“b”的类型“a”的实体,(我猜)它不存在。