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

时间:2016-05-20 08:22:11

标签: java jpa orm jpa-2.1

我正在使用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

1 个答案:

答案 0 :(得分:0)

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

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