2.4 在Java SE环境中获取一个EntityManager
实体管理器工厂应被视为一个不变的配置支架,它被定义为指向一个单一的数据源和映射定义的一组实体。这是来创建和管理EntityManagers的入口点。Persistence 类是来创建一个实体管理器工厂的引用类。
// Use persistence.xml configuration EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1") EntityManager em = emf.createEntityManager(); // Retrieve an application managed entity manager // Work with the EM em.close(); ... emf.close(); //close at application end
实体管理器工厂通常是建立在应用程序初始化时和在应用程序结束时关闭。它的创建是一个昂贵的过程。对于那些熟悉Hibernate的人来说,实体管理器工厂是非常像一个会话工厂。事实上,实体管理器工厂是一个会话工厂的顶级的包装。调用的EntityManagerFactory都是线程安全的。
感谢的EntityManagerFactory,你可以检索扩展实体管理器。扩展实体管理器在实体管理器的活跃期间保持相同的持久化上下文:换句话说,实体仍然是两个事务之间管理的(除非你调用entityManager.clear()之间)。你可以看到一个实体管理器作为一个Hibernate会话顶部的小包装。