2011-07-12 23 views
2

我曾經使用NetBeans 6.9.1,並且工作得很好。現在我正在開發NetBeans 7,我正在嘗試的是從實體類(這幾乎是一個嚮導)創建一個JPA控制器,當我完成該過程時,我嘗試調用最近生成的JPA控制器,我發現這裏面:NetBeans 7中的Jpa控制器

public ClientsJpaController(UserTransaction utx, EntityManagerFactory emf) { 
     this.utx = utx; 
     this.emf = emf; 
    } 

我也做了同樣在NetBeans 6.9.1,這是我所:

public ClientsJpaController() { 
     emf = Persistence.createEntityManagerFactory("WebServicesInvestigacion6PU"); 
    } 

我想知道的是爲什麼他們改變它,這有什麼用這種新方法進行編碼的正確方法。

回答

1

我最近在研究類似的東西,因爲我驚恐起來時,我注意到我的每一個(12個)的NetBeans 6.9.1產生控制器(用於JSE應用程序)創建的EntityManagerFactory(EMF)的實例作爲在NetBeans 6.9.1例子包含在問題體內的代碼說明。

我讀的一切都表明,應用程序不應該(也不需要)創建多個工廠,很大程度上是由於緩存和初始化問題。

我更經常看到的推薦做法建議將EMF包裝在單件中並通過靜態訪問器公開它。使用線程安全的單例。

因此,NetBeans 7具有EMF參數是有道理的。看起來NB7控制器支持最佳實踐。