如何在JSF中使用OpenJPA EntityManagerFactory

时间:2012-07-23 06:50:30

标签: jsf jpa entitymanager

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

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

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

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

2007年

Java Notepad: JPA EMF in web applications

自2010年起

Best way to use JPA in web-tier

How to close a JPA EntityManger in web applications  从2007年开始

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

最诚挚的问候,Veote

1 个答案:

答案 0 :(得分:1)

创建一个简单的servlet filter,在init()方法中创建EMF,在destroy()方法中关闭它并在EntityManager方法中创建一个doFilter()作为ThreadLocal<EntityManager>。您也可以在那里开始和结束交易。

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