我遇到了一個小問題,我一直在用GenericDAO模式在Web上使用Hibernate和Spring,現在我使用Hibernate作爲GUI應用程序,它不使用任何類似EJB和東西。在非託管環境中休眠
我的主要問題是,我曾經有過這樣
@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;
}
就像一個單獨的東西在每次調用時爲我提供一個EntityManagerFactory? – javaNoober
@JavaNoober:我的意思是在某個時候你需要構建你的DAO。如果你把這點集中起來,你可以在那裏設置'EntityManagerFactory's。幾乎像春天,但沒有春天。 – axtavt
好吧,得到了亞,但我做得很好,人們已經抱怨他們必須開始並提交交易,試圖讓所有數據庫方面遠離開發人員 – javaNoober