我正在尝试在我的网络应用程序上设置JPA,但我收到错误:
没有名为StorePU的EntityManager的持久性提供程序
我的persistance.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" 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_1.xsd">
<persistence-unit name="StorePU" transaction-type="RESOURCE_LOCAL">
<non-jta-data-source>jdbc/NotesDB</non-jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
连接:
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class DBUtil
{
private static final EntityManagerFactory emf =
Persistence.createEntityManagerFactory("StorePU");
public static EntityManagerFactory getEmFactory() {
return emf;
}
public static void close()
{
emf.close();
}
}
我添加了必要的库EclipseLink(JPA 2.1)。
我尝试添加
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
到我的持久性文件但我仍然遇到了这个错误。
堆栈追踪:
run:
Exception in thread "main" java.lang.ExceptionInInitializerError
at Store.data.CustomerRepository.insert(CustomerRepository.java:25)
at store.service.CustomerService.insert(CustomerService.java:38)
at Store.util.TestingInsert.main(TestingInsert.java:20)
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named StorePU
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
at Store.data.DBUtil.<clinit>(DBUtil.java:9)
... 3 more
C:\Users\buttons\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)
Eclipselink in class path image
我使用MySQL作为我的数据库和MySQL连接器作为我的JDBC驱动程序