【问题标题】:GAE datastore put and getGAE 数据存储放置和获取
【发布时间】:2013-05-11 17:05:39
【问题描述】:

您好,我只是在玩数据存储,希望有人能告诉我为什么我的简单代码不起作用?我一直在研究如何从数据存储中放置和获取字符串......不幸的是,我的 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();
    }




}

}

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢。这是世界上最简单的解决方法,现在一切都变得如此有意义......我为自己的迟钝道歉
    • 没问题。第一次阅读时,很容易错过一些以后会更有意义的事情的重要性。
    猜你喜欢
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-05
    • 2012-11-22
    • 1970-01-01
    • 2012-10-11
    相关资源
    最近更新 更多