我正在使用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()
时,它会生成emf
和em
个实例。
此emf
个实例会怎样?
是否始终与数据库保持联系?
如果我同时进行重要的读写操作,那么这是更好的方法:
emf
一次(我上面使用的)emf
和em
。 答案 0 :(得分:0)
根据工厂模式,它应该只创建/初始化一次。所以EntityManagerFactory应该只是整个应用程序中的一个。您可以在需要时从该工厂创建EntityManager。
参考文献:Factory Pattern, When should be factory instance be created?