由于PMF,AppEngine JDO无法创建持久对象

时间:2014-08-24 17:27:40

标签: java google-app-engine jdo

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

我按照这里的说明操作: https://developers.google.com/appengine/docs/java/datastore/jdo/creatinggettinganddeletingdata

具体来说,这个代码在Make Objects Persistent部分

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

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

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

问题是,我不知道PMF来自哪里。我得到了一个" PMF无法解决" Eclipse中的错误。

我已经查看了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();
    }
}

1 个答案:

答案 0 :(得分:2)

您可以通过此链接阅读Google的文档,该文章很好地解释了此PMF课程的内容

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

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