【问题标题】:What is the life cycle of EntityManagerFactory in application managed application?EntityManagerFactory 在应用程序管理的应用程序中的生命周期是什么?
【发布时间】:2016-09-17 10:00:56
【问题描述】:

我正在使用 JPA 2.1。实体管理器在此处管理应用程序。

示例类:

public class TestDao {

private static EntityManagerFactory emf;

private static EntityManager em;

public static EntityManager initialize() {
    if (emf == null) {
        emf = Persistence.createEntityManagerFactory("persistence_unit");
    }
    return emf.createEntityManager();
}

public static void insert(Object obj){
    em.persist(obj);
}

当用户第一次使用TestDao.initialize() 时,它会生成emfem 实例。

这个emf 实例会发生什么?

它是否始终与数据库保持连接?

如果我有大量的读取和写入,哪种方法更好:

  • 创建一次emf正如我上面使用的
  • 每次与数据库交互时,都会创建新的emfem

【问题讨论】:

  • EMF 可以重复使用。使用它,我们可以创建多个 EM。 EM 是打开与数据库的连接的人。 EMF 用于获取应用程序管理的 EM。它通常在应用程序关闭时关闭。

标签: java jpa orm jpa-2.1


【解决方案1】:

根据工厂模式,它应该只被创建/初始化一次。所以 EntityManagerFactory 应该只是整个应用程序中的一个。您可以根据需要从该工厂创建 EntityManager。

参考:Factory Pattern, When should be factory instance be created?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2011-09-25
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多