获取实体管理器的不同方式
我看到的用于创建EntityManager的常用成语是这样的:
public class BaseDao {
    private static final String PERSISTENCE_UNIT_NAME = "Employee";
    EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
    public EntityManager getEntityManager() {
      return factory.createEntityManager();
    } 
}
然后它像这样使用:
Employee emp = new Employee();
emp.setName("Joe M");
getEntityManager().persist(emp);
问题是为什么不这样做:
public class BaseDao{
    private static final String PERSISTENCE_UNIT_NAME = "Employee";
    EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
    private EntityManager entityManager = null;
public void setEntityManger() {
    EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
    this.entityManager = factory.createEntityManager();
    }
    public EntityManager getEntityManager() {
        return this.entityManager;
    }
}
换句话说,是否需要始终让实体经理通过?或者是否可以将其创建为实例(甚至是静态)变量并像这样检索?factory.createEntityManager()
为了澄清,我说的是一个不使用EJB或Spring容器的环境。
谢谢。
 
					 
				 
				    		 
				    		 
				    		 
				    		