0

小さな問題が発生しました。私は常にGenericDAOパターンを使用してWebでHibernateとSpringを使用していましたが、現在は、EJBなどを使用しないGUIアプリにHibernateを使用しています。

私の主な問題は私がこれを持っていたということです

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

しかし今、私はこのようにしています:

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

私が持っている大きな欠陥に気付いたのは、このGenericDAOクラスを継承するたびに、毎回1つの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。1か所で作成し、作成時にDAOオブジェクトに注入します。

于 2011-07-22T09:31:25.500 に答える