当前位置: 首页 > 知识库问答 >
问题:

未找到EntityManager的持久性提供程序

胡承载
2023-03-14

我正在尝试使用JPA和EclipseLink来持久化元素。所以我创建了一个类来持久化

@Entity
public class Couple implements Serializable{
    private static final long serialVersionUID = 1L;
    @Column(name = "OBJECTID")
    private String objectID;
    @Column(name = "EPCNUMBER")
    private String epcNumber;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

等等。我创建了一个类来“使用”:

public class Main {
  private static final String PERSISTENCE_UNIT_NAME = "MyPU";
  private static EntityManagerFactory factory;

  public static void main(String[] args) {
    factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
    EntityManager em = factory.createEntityManager();
    TypedQuery<Couple> q = em.createQuery("SELECT c FROM Couple c", Couple.class);
    List<Couple> couples = (List<Couple>) q.getResultList();

然后,我有以下persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="MyPU">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>localJTA</jta-data-source>
        <class>fr.mypackage.com.Couple</class>
        <properties>
            <property name="eclipselink.ddl-generation" value="create-tables"/>
            <property name="eclipselink.ddl-generation.output-mode" value="database" />
            <property name="eclipselink.logging.level" value="INFO"/>
        </properties>
    </persistence-unit>
</persistence>

但是,即使我改变了属性,我也有同样的错误:

线程"main"中的异常javax.persistence.PeristenceException:没有名为MyPU的EntityManager的持久性提供程序(当调用工厂=Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);)。

我对xml和持久化单元做了什么错事吗?我在类路径中添加了以下内容:

javax.persistence.jar
javax.ejb.jar
eclipselink.jar
javax.persistence_1.0.0.jar
javax.persistence_2.0.4.v201112161009.jar
derby.jar

你能帮我吗?谢谢

共有1个答案

宗政文彬
2023-03-14

在我的应用程序中,我遇到了这个问题,直到我编译了我的Netbeans项目。然后成功了。

 类似资料:
  • 我试图在Eclipse中测试我的hibernate maven应用程序,当我运行获取enttity类名称的方法时,我得到了以下异常: 这是persistence.xml: 这是使用以下方法的类: 波姆。xml: 我尝试更改持久性的版本号、更改xmlns、提供程序的名称,但仍然是例外。

  • 问题内容: Hibernate 5.1.1和5.2.2之间发生了什么变化?如果我使用5.2.2,则会收到错误消息“名为pu的EntityManager没有持久性提供程序”。完全相同的配置适用于5.1.1。我应该如何更改代码以使5.2.2正常工作? pom.xml src / main / resources / META-INF中的persistence.xml 创建EntityManager 问

  • 问题内容: 我在目录下使用相同的名字。然后,我用以下代码调用它: 但是,我收到以下错误消息: 这是: 它应该在类路径中。但是,我得到了上面的错误。 问题答案: 在之后,定义持久性提供程序名称:

  • StackOverflow上已经有很多关于这个错误消息的问题,但我找不到解决方案... 错误是: 严重:映射到响应的异常:500(内部服务器错误) 我的persistence.xml是: 它由这行调用(这行没有错误): 我的persistence.xml位于Project Explorer中的JPA内容下: CreateEntityManagerFactory是: 更新:JPAFactory(在c

  • 我在REST服务器上工作,同时学习EJB\Hibernate。当服务调用DAO时,我面临一个问题,即它找不到我的持久性单元。 在本例中,我得到“无法为unitName PersistenceUnit检索EntityManagerFactory” 然后我试试这个: null pom.xml

  • 我正在使用JPA和Hibernate开发一个Swing应用程序。但每次我尝试调用以下代码以获取 我得到以下异常: 和 是 依赖关系: 除 junit 之外的所有依赖项都在类路径中