EntityManagerFactory 在应用程序管理的应用程序中的生命周期是什么?

What is the life cycle of EntityManagerFactory in application managed application?

我正在使用 JPA 2.1。实体管理器是在这里管理的应用程序。

样本Class:

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 实例会发生什么?

是否一直保持与数据库的连接?

如果我同时进行大量读取和写入,哪种方法更好:

根据工厂模式,它应该 created/initialized 只有一次。因此 EntityManagerFactory 在整个应用程序中应该只有一个。您可以根据需要从该工厂创建 EntityManager。

参考文献:Factory PatternWhen should be factory instance be created?