0

我在 WebSphere Application Server 上使用 OpenJPA。我的 WebApplication 使用 JSF 2(没有 EJB)。

我想知道是否有在 JSF 中使用 JPA 的最佳实践。

我发现 EntityManagerFactory (EMF) 应该是应用程序范围的。此外,EMF 应该(仅)在应用程序停止时被销毁。

但我的消息来源不是最新的:

Java 记事本: 2007 年Web 应用程序中的 JPA EMF

从 2010 年开始在 Web 层中使用 JPA 的最佳方式

如何在 2007 年的 Web 应用程序中关闭 JPA EntityManger

是否有其他实践或更好的方法来处理 JSF 中的 JPA?特别是 EMF 和 DAO 的范围。

最好的问候, 投票

4

1 回答 1

1

创建一个简单的servlet 过滤器,该过滤器在方法中创建 EMF,在方法init()中关闭它destroy()并创建一个设置为. 您也可以在那里开始和结束交易。EntityManagerdoFilter()ThreadLocal<EntityManager>

这也称为“在视图中打开会话”或“在视图中打开实体管理器”模式。

于 2012-07-23T22:29:29.363 回答