java – “没有EntityManager的持久性提供程序”错误

前端之家收集整理的这篇文章主要介绍了java – “没有EntityManager的持久性提供程序”错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我是JPA的新手,我试着从书中做一个简单的例子.
但无论我做什么,我都会收到以下错误

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named EmployeeService
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:89)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60)
        at com.mycompany.simpleentity.EmployeeTest.main(EmployeeTest.java:18)

我google了很多,我做了我读到的关于JPA的所有内容.
这是我项目的目录树:

    .
|-- pom.xml
`-- src
    |-- main
    |   |-- java
    |   |   `-- com
    |   |       `-- mycompany
    |   |           `-- simpleentity
    |   |               |-- Employee.java
    |   |               |-- EmployeeService.java
    |   |               `-- EmployeeTest.java
    |   `-- resources
    |       `-- Meta-INF
    |           `-- persistence.xml
    `-- test

这是我的pom.xml:

sqlsql

这是我的源代码
EmployeeTest.java:

package com.mycompany.simpleentity;

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

public class EmployeeTest {
    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("EmployeeService");
        EntityManager em = emf.createEntityManager();

    }
}

这是我的persistance.xml

sql.Driver"/>
            sql://localhost:5432/testdb;create=true"/>
            

我做错了什么?
先感谢您.

最佳答案
JPA是由多个JPA提供程序(Hibernate,EclipseLink,OpenJPA,Toplink)实现的规范.

您需要选择要使用的提供程序,并将适当的依赖项添加到您的pom.xml中.您还需要在persistence.xml中指定您的提供程序.

例如,如果您使用OpenJPA(我为此示例选择了它,因为它的最新版本在Maven Central Repo中可用,因此不需要配置特定于供应商的存储库):

 sqlsql

.

sql.Driver"/>       
            sql://localhost:5432/testdb;create=true"/>       
            

猜你在找的Java相关文章