我正在使用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();
    }
}

最佳答案

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

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

向下滚动到“获取PersistenceManager实例”,然后找到代码。那只是获得PersistenceManagerFactory的一种方法,基本的JDO不需要此类的Google。您的代码似乎已经将真正的PersistenceManagerFactory与Google的包装器类混淆了。

10-07 20:31