【发布时间】: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() 时,它会生成emf 和em 实例。
这个emf 实例会发生什么?
它是否始终与数据库保持连接?
如果我有大量的读取和写入,哪种方法更好:
- 创建一次
emf(正如我上面使用的) - 每次与数据库交互时,都会创建新的
emf和em。
【问题讨论】:
-
EMF 可以重复使用。使用它,我们可以创建多个 EM。 EM 是打开与数据库的连接的人。 EMF 用于获取应用程序管理的 EM。它通常在应用程序关闭时关闭。