Java NetBeans 7中的Jpa控制器

Java NetBeans 7中的Jpa控制器,java,jpa,netbeans,Java,Jpa,Netbeans,我曾经使用NetBeans 6.9.1,它工作得很好。现在,我正在开发NetBeans 7,我正在尝试从实体类创建一个JPA控制器,这几乎是一个向导。当我完成该过程并尝试调用最近生成的JPA控制器时,我在其中发现了以下内容: public ClientsJpaController(UserTransaction utx, EntityManagerFactory emf) { this.utx = utx; this.emf = emf; } 我在Net

我曾经使用NetBeans 6.9.1,它工作得很好。现在,我正在开发NetBeans 7,我正在尝试从实体类创建一个JPA控制器,这几乎是一个向导。当我完成该过程并尝试调用最近生成的JPA控制器时,我在其中发现了以下内容:

public ClientsJpaController(UserTransaction utx, EntityManagerFactory emf) {
        this.utx = utx;
        this.emf = emf;
    }
我在NetBeans 6.9.1中也做了同样的事情,这就是我所拥有的:

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

我想知道的是他们为什么要改变它,以及用这种新方法编写代码的正确方法是什么

我最近研究了一些类似的东西,因为当我注意到我的12(十二)个NetBeans 6.9.1生成的控制器(用于JSE应用程序)中的每一个都创建了EntityManagerFactory(EMF)的实例时,我感到震惊,正如问题正文中的NetBeans 6.9.1示例代码所示

我读到的所有内容都表明,由于缓存和初始化问题,应用程序不应该(也不需要)创建多个工厂

我经常看到的推荐实践建议将EMF包装在一个单例中,并通过静态访问器公开它。使用线程安全的单例

因此,NetBeans 7有一个EMF参数是有意义的。看起来NB7控制器支持最佳实践