首页 > 解决方案 > 没有名为 EntityManager 的持久性提供程序(新)

问题描述

我正在尝试调用 persistence.xml 来显示 Netbeans IDE 中数据库中的一些数据。我已经查看并尝试了以前用户提出的不同方法,但我仍然无法解决问题。

我用它来调用持久性单元,

EntityManagerFactory emf = Persistence.createEntityManagerFactory("TimeEven DataBasePU");

这是我尝试运行文件时返回的内容,

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named TimeEven DataBasePU
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at internal.assesment.TimeTableEventList.main(TimeTableEventList.java:110)
C:\Users\User\Documents\NetBeansProjects\Timetable\nbproject\build-impl.xml:1051: The following error occurred while executing this line:
C:\Users\User\Documents\NetBeansProjects\Timetable\nbproject\build-impl.xml:805: Java returned: 1

这是错误似乎源于的第 805 行

<java classname="@{classname}" dir="${work.dir}" failonerror="${java.failonerror}" fork="true">

如前所述,

我已经在持久性单元名称下添加了提供程序,

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

而且我已经确保 Persistence is unit 在 META-INF 文件夹中,

C:\Users\User\Documents\NetBeansProjects\Timetable\src\META-INF\persistence.xml

它在类路径中,所以我不确定错误在哪里。

编辑 1. 是的,我从 xml 代码中复制并粘贴(我在那里也拼错了,哈哈)

坚持的形象

编辑 2。

文件和库的图像

编辑 3。

源目录

标签: javajpanetbeanspersistence

解决方案


我认为您发布的异常是由于没有与您在 Persistence.createEntityManagerFactory 上传递的名称相匹配的持久性单元引起的。在你的情况下:

<persistence-unit name="TimeEven DataBasePU">

那么,persistence.xml如果您确定持久性单元的名称与您在代码中编写的名称相同,您能否检查一下?

或者,发布您的帖子persistence.xml可能有助于解决您的问题。

编辑1:你能检查你的依赖关系吗?

如果你使用 maven(pom.xml),它必须有:

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>javax.persistence</artifactId>
  <version>2.1.1</version>
  <scope>provided</scope>
</dependency>

推荐阅读