私は小さな問題を抱えていましたが、私はいつもGenericDAOパターンでHibernateとSpringのWebで作業していましたが、EJBやstuffなどを使用しないGUIアプリケーション。管理されていない環境でのHibernate
私の主な問題は、私はこの
@PersistenceContext(unitName = "persistenceUnit") private EntityManager em;
を持っていましたが、今、私はこのようなことを行うことである。
private EntityManagerFactory emf = Persistence.createEntityManagerFactory("persistenceUnit"); private EntityManager em = emf.createEntityManager();
はちょうど私が持っている大きな欠陥があることで気づくようになりましたこのGenericDAOクラスを継承するたびに、毎回1つのEntityManagerFactoryを作成していますが、どうすればよいですか?
EDIT:
が、これはそれを解決するためにneatest方法だろう同意?
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;
}
各呼び出しで1つのEntityManagerFactoryを提供するシングルトンのようなものはありますか? – javaNoober
@ JavaNoober:ある時点で、DAOを構築する必要があるということです。この点を集中化すると、そこに 'EntityManagerFactory'を設定することができます。ほとんど春のようですが、春はありません。 – axtavt
私はうまくいきましたが、人々はすでにトランザクションをコミットし始める必要があると不満を持ち、すべてのDB側を開発者から遠ざけようとしています – javaNoober