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

f2uvfpb9  于 2022-10-15  发布在  Eclipse
关注(0)|答案(1)|浏览(218)

我澄清这是一个学校项目。
我必须使用JPA(NikpseLink)在Java中进行CRUD。
为此,在2019-12年,我用NikpseLink3.0.3和OpenJDK11创建了一个“JPA项目”。此外,我还添加了javax-Persistence 2.2.1和MySQL Connector 5.0.0作为库。
在此之后,我配置了到MySQL数据库的连接,并使用该选项基于MySQL表生成Java类。
在尝试创建EntityManagerFactory时会带来不便,因为它不会使提供程序有效。
错误在于:

aug. 30, 2022 10:29:39 AM
WARNING: javax.persistence.spi::No valid providers found.
Exception in thread "main" javax.persistence.PersistenceException: No persistence provider for EntityManager named testJPA
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:86)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)
in testJPA.main.main(main.java:12)

我的主要观点是:

package testJPA;

    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;

    public class main{

    public static void main(String[] args) {

        EntityManagerFactory emfactory = Persistence.createEntityManagerFactory("testJPA");
    }

}
我的Persistence.xml是:

<?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation ="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd">
    <persistence unit name="testJPA" transaction type="RESOURCE_LOCAL">
    <properties>
    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://SERVER:3306/gabrieln_laboratory"/>
    <property name="javax.persistence.jdbc.user" value="USER"/>
    <property name="javax.persistence.jdbc.password" value="PASSWORD"/>
    <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    </properties>
    </persistence-unit>
    </persistence>

我验证了通常情况下,Eclipse将项目添加到src/main/Java中(带有META-INF文件夹和它的Persistence.xml)。
我一直在尝试替代方案,并阅读了各种论坛,但在这一点上我被困住了,我不知道这是否可能是库的问题,或者是否是特定于Eclipse的配置。
先谢谢你。

zfycwa2u

zfycwa2u1#

在持久化单元的下面添加此标记
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

相关问题