命名为 EntityManager 的 Eclipselink Maven 没有持久性提供程序

Kev*_*vin 1 java jpa eclipselink

我尝试在 Intellij 中使用 Maven 创建一个 JPA 项目。我使用 Eclipse Link,数据库是 SQlite。

这是我当前的pom.xml文件(仅依赖项):

<dependency>
  <groupId>org.xerial</groupId>
  <artifactId>sqlite-jdbc</artifactId>
  <version>3.8.11.2</version>
</dependency>

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>org.eclipse.persistence.jpa</artifactId>
  <version>2.6.3</version>
</dependency>

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

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>eclipselink</artifactId>
  <version>2.6.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我的persistence.xml文件看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">
<persistence-unit name="NewPersistenceUnit">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>com.raeste.db.BuchungEntity</class>
    <class>com.raeste.db.KategorieEntity</class>
    <properties>
        <property name="eclipselink.jdbc.url" value="jdbc:sqlite:/home/raeste/programmierung/haushaltsbuch.db"/>
        <property name="eclipselink.jdbc.driver" value="org.sqlite.JDBC"/>
    </properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)

如果我现在尝试创建一个,EntityMangerFactory我会收到以下异常:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named NewPersistenceUnit
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
Run Code Online (Sandbox Code Playgroud)

创建的代码EntityManagerFactory是:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("NewPersistenceUnit");
Run Code Online (Sandbox Code Playgroud)

我知道这个问题有几个问题,但没有一个有帮助。该persistence.xml文件位于以下路径下:

src/main/java/META-INF/
Run Code Online (Sandbox Code Playgroud)

dav*_*xxx 5

persistence.xml文件应位于src/main/resources/META-INF.
src/main/java用于 Java 源代码。
src/main/resources用于资源文件。

尝试一下。