0

我遇到了一个小问题,我总是在具有 GenericDAO 模式的 Web 上使用 Hibernate 和 Spring,现在我将 Hibernate 用于不使用 EJB 之类的东西的 GUI 应用程序。

我的主要问题是我曾经有这个

@PersistenceContext(unitName = "persistenceUnit") private EntityManager em;

但现在我这样做:

private EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit"); private EntityManager em = emf.createEntityManager();

刚刚注意到我的一个大缺陷是,每当我继承这个 GenericDAO 类时,我每次都会创建一个 EntityManagerFactory,我该怎么办?

编辑:

同意这将是解决它的最巧妙方法吗?

private EntityManagerFactory emf;
private static final Connector INSTANCE = new Connector();

public static Connector getInstance() {
    return INSTANCE;
}   

private Connector(){        
    emf = Persistence.createEntityManagerFactory("persistenceUnit");
}

public EntityManagerFactory getEmf() {      
return emf;
}
4

1 回答 1

0

您仍然可以在没有 Spring 或其他容器的情况下使用依赖注入模式 -EntityManagerFactory在一个地方创建并在创建时将其注入 DAO 对象。

于 2011-07-22T09:31:25.500 回答