GAE和JDO:使用持久性管理器的任何推荐技术?

时间:2012-06-19 19:39:58

标签: google-app-engine jdo

在App Engine文档中使用JDO的基本示例非常简单:

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

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

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

但是在我看来,每次我想访问存储时获取和关闭持久性管理器都会很烦人,因为有很多冗余代码。那么你会建议避免这种情况?

例如,我遇到了一个解决方案,建议在过滤器中获取PM并将其附加到request,以便我可以直接从任何servlet访问它。 PM也会自动关闭过滤器。你觉得怎么样?

2 个答案:

答案 0 :(得分:1)

  1. 在DAO层执行此操作,您可以将样板代码保留在业务逻辑之外
  2. 真的真是这么大的交易?我的意思是,输入东西不是编程的难点:)
  3. 我不会亲自使用JDO。 Objectify更容易,因为它是专门为appengine设计的

答案 1 :(得分:0)

在完成工作后获取过滤器中的PM并关闭该PM(doFilter中的finally子句)是一种很好的方法。这使得代码保持清洁,易于维护并且如果将来转移到JPA

,则易于更改