【问题标题】:How to use JPA EntityManager in java SE applications如何在 Java SE 应用程序中使用 JPA EntityManager
【发布时间】:2016-11-13 02:32:02
【问题描述】:

我正在开发一个 java SE 应用程序,我想使用 JPA EntityManager 来管理数据库操作。从我的搜索中,我发现需要创建一个persistence.xml 文件。但我不知道我应该把它放在哪里。我的搜索结果说它应该放在webRoot\META-INF,但我的项目不是J2EE 项目,所以它没有webRoot 或META-INF 目录。这是我获取实体管理器的代码:

 private static EntityManagerFactory factory = Persistence.createEntityManagerFactory("unitName");
 protected EntityManager entityManager =  entityManager = factory.createEntityManager();

但这总是会导致javax.persistence.PersistenceException 异常并返回此消息:

No Persistence provider for EntityManager named unitName

我该如何解决这个问题?

感谢您的关注。

【问题讨论】:

  • JPA 规范简单地说是 META-INF,所以把它放在类路径根目录的 META-INF 中。

标签: java hibernate jpa entitymanager


【解决方案1】:

由于你使用的是 Hibernate,你可以看到它的Tutorial Using the Java Persistence API (JPA)

在 Java™ SE 环境中,持久性提供程序(在本例中为 Hibernate)需要通过 META-INF/persistence.xml 资源名称的类路径查找来定位所有 JPA 配置文件。

把persistence.xml放到

  • ./src/main/resources/META-INF/persistence.xml 如果你使用 maven。
  • ./src/META-INF/persistence.xml 如果你不使用 maven。

完成后,上面的教程还告诉您如何配置以下内容并逐步使用JPA。如果您需要任何持久性模板,请查看here

【讨论】:

    【解决方案2】:

    首先你可以像这样创建一个文件 META-INF:

    但如果您使用的是 Netbeans,那么当您创建 Entity Classes From Database 时,会自动创建该文件夹,您可以尝试一下。

    祝你好运。

    【讨论】:

    • 谢谢。解决方案create Entity Classes From Database 解决了我的问题。但是没有persistence.xml,有没有办法使用实体管理器?
    • 我认为没有persistence.xml你不能使用JPA或Hibernet
    猜你喜欢
    • 1970-01-01
    • 2012-06-13
    • 2016-10-07
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多