小さな問題が発生しました。私は常に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;
}