разные способы получения EntityManager

Обычная идиома, которую я вижу для создания 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.

Благодарю.

Ответы на вопрос(2)

Ваш ответ на вопрос