没有命名为EntityManager的持久性提供程序(新)

时间:2019-03-10 17:08:24

标签: java jpa netbeans persistence

我试图调用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代码复制并粘贴的(我在那也拼错了)

Image of Persistence

编辑2。

Image of Files and Libraries

编辑3。

Source Directory

1 个答案:

答案 0 :(得分:0)

我认为您发布的异常是在没有与您在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>