【问题标题】:How to use OpenJPA EntityManagerFactory in JSF如何在 JSF 中使用 OpenJPA EntityManagerFactory
【发布时间】:2012-07-21 09:38:14
【问题描述】:

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

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

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

但我的来源不是最新的:

Java Notepad: JPA EMF in web applications 从 2007 年开始

Best way to use JPA in web-tier 从 2010 年开始

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

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

最好的问候,投票

【问题讨论】:

  • 你使用像 Spring 或 CDI 这样的框架吗?
  • 不,我不使用这样的框架。

标签: jsf jpa entitymanager


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2011-10-14
    相关资源
    最近更新 更多