如何在Web项目之外使用JPA?

时间:2010-06-25 07:52:51

标签: java netbeans jpa eclipselink

我在NetBeans的Web项目中使用了eclipselink。它工作得很好,很容易。如何在与Web无关的项目(控制台应用程序)中执行相同操作?

在我的网络应用程序中,我有:

@PersistenceUnit
EntityManagerFactory enf;

哪个实例化enf。这在控制台应用程序中不起作用。

3 个答案:

答案 0 :(得分:3)

对于Web或应用程序容器,容器会在调用EntityManagerFactory注释时注入@PersistenceUnit。这不适用于控制台应用程序。

实现这一目标的可能方法是

  1. 包含Spring(与Web容器完成相同的工作)。请参阅教程 Getting Started With JPA in Spring 2.0
  2. 或者

    1. 自己编写启动代码如下。

      EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenceUnitName");
      

答案 1 :(得分:2)

好的,我只需要打电话

enf = Persistence.createEntityManagerFactory("JavaApplication39PU");

其中JavaApplication39PU是META-INF / persistence.xml中的名称

答案 2 :(得分:1)

在EJB3容器(或Spring)中运行时,您可以获得使用EclipseLink进行动态编织的好处。如果您在JavaSE场景中运行,我建议使用-javaagent启用动态编织,以便您的应用程序行为相同。

文档:http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#How_to_Configure_Dynamic_Weaving_for_JPA_Entities_Using_the_EclipseLink_Agent

道格