【问题标题】:AppEngine JDO cannot create a Persistent Object due to PMF由于 PMF,AppEngine JDO 无法创建持久对象
【发布时间】:2014-08-24 17:27:40
【问题描述】:

我正在使用 AppEngine 将我的 api 从 Python 移植到 Java。我决定使用JDO。我已经创建了我的模型,现在我正在尝试创建一个持久保存到数据存储区的新对象。

我正在按照此处的说明进行操作: https://developers.google.com/appengine/docs/java/datastore/jdo/creatinggettinganddeletingdata

具体来说,这段代码在使对象持久化部分中

    PersistenceManager pm = PMF.get().getPersistenceManager();

    Employee e = new Employee("Alfred", "Smith", new Date());

    try {
        pm.makePersistent(e);
    } finally {
        pm.close();
    }

问题是,我不知道 PMF 是从哪里来的。我在 Eclipse 中收到“无法解析 PMF”错误。

我查看了 SO 上的其他问题来梳理 PMF 的起源,并发现其他人这样做; PersistenceManagerFactory pmf;

但是当我尝试这样做时,我遇到了 get() 的问题。 Eclipse 在说

The method get() is undefined for the type PersistenceManagerFactory

谁有创建 JDO 对象并将其保存到数据存储区的完整示例,包括所有导入和必要的变量?

提前致谢!!!

到目前为止,这是我的代码:

import java.io.IOException;
import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class Test_APIServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
        PersistenceManagerFactory pmf;
        PersistenceManager pm = pmf.get().getPersistenceManager();
    }
}

【问题讨论】:

    标签: java google-app-engine jdo


    【解决方案1】:

    您可以在此链接上阅读 Google 的文档,该文档很好地解释了这个 PMF 类是什么

    https://developers.google.com/appengine/docs/java/datastore/jdo/overview-dn2

    向下滚动到“获取 PersistenceManager 实例”,这里有代码。这只是获得 PersistenceManagerFactory 的一种方式,基本的 JDO 不需要 Google 的此类。您的代码似乎将真正的 PersistenceManagerFactory 与 Google 的这个包装类混淆了。

    【讨论】:

      猜你喜欢
      • 2011-02-15
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2011-03-03
      • 1970-01-01
      相关资源
      最近更新 更多