【问题标题】:No Persistence provider for EntityManager named "my PU Name"没有名为“我的 PU 名称”的 EntityManager 的持久性提供程序
【发布时间】:2018-11-28 13:42:18
【问题描述】:

我搜索了所有选项,但现在没有任何对我有用。 我在创建数据库表时遇到了这个问题

线程“主”javax.persistence.PersistenceException 中的异常:没有名为 FinanceiroPU 的 EntityManager 的持久性提供程序 在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61) 在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) 在 com.ronaldosistemas.financeiro.factory.CriaTabelas.main(CriaTabelas.java:9)

这是我的 CriaTabelas.Java

package com.ronaldosistemas.financeiro.factory;

import javax.persistence.Persistence;

public class CriaTabelas {

    public static void main(String[] args) {

        Persistence.createEntityManagerFactory("FinanceiroPU");

    }
}

这是我的 persistense.xml 及其位置

<persistence-unit name="FinanceiroPU">
    <!-- Implementação do JPA, no nosso caso Hibernate -->
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/financeiro" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="" />
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.format_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>
</persistence-unit>

persistence location

最后这是我的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ronaldosistemas</groupId>
<artifactId>financeiro</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<dependencies>
    <!-- OmniFaces (utilitarios para JSF) -->
    <dependency>
        <groupId>org.omnifaces</groupId>
        <artifactId>omnifaces</artifactId>
        <version>2.0</version>
        <scope>compile</scope>
    </dependency>

    <!-- PrimeFaces (biblioteca de componentes) -->
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>5.1</version>
        <scope>compile</scope>
    </dependency>

    <!-- Weld (implementação do CDI) -->
    <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet</artifactId>
        <version>2.2.9.Final</version>
        <scope>compile</scope>
    </dependency>

    <!-- Weld depende do Jandex -->
    <dependency>
        <groupId>org.jboss</groupId>
        <artifactId>jandex</artifactId>
        <version>1.2.3.Final</version>
        <scope>compile</scope>
    </dependency>

    <!-- Implementacao do Bean Validation -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>5.1.3.Final</version>
        <scope>compile</scope>
    </dependency>

    <!-- Núcleo do Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.8.Final</version>
        <scope>compile</scope>
    </dependency>

    <!-- Implementação de EntityManager da JPA -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.8.Final</version>
        <scope>compile</scope>
    </dependency>

    <!-- Driver JDBC do MySQL -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.34</version>
        <scope>compile</scope>
    </dependency>

    <!-- Mojarra (implementacao do JSF) -->
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.2.10</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

我与提供者交换并更新了我的 sql 连接器和休眠持久性 jar,但仍然无法正常工作

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

请问有人可以帮助我吗?非常感谢

【问题讨论】:

  • 您确定添加了正确的罐子吗?在引发异常的类中设置断点可能会有所帮助。我曾经有过这个,但正确的 jar 不在运行时部署中

标签: hibernate jpa


【解决方案1】:

我的问题在交易 persistense.xml 头后得到了解决。 我想我用的是旧版本

下面是正确的

<?xml version="1.0" encoding="UTF-8"?>
<persistence 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_1_0.xsd"
    version="1.0">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 2016-04-18
    • 1970-01-01
    • 2019-12-04
    • 2014-03-03
    • 2016-08-02
    相关资源
    最近更新 更多