6
respostas

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named contas

Segui exatamente como o professor e já tentei todas as opções das respostas anteriores e nada...

6 respostas

Oi Maria

Confirma pra mim se no seu persistence-unit existe um <persistence-unit name="contas">, conforme exemplo abaixo:

<?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="contas">
        <class>br.com.alura.jpa.modelo.Conta</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/alura_jpa?serverTimezone=UTC" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="" />

            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MariaDBDialect"/>
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

Está sim :(

Oi Maria

Envia seu persistence.xml, por favor

To com o mesmo problema, segue o persistence.xml:

<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_2_0.xsd"
    version="2.0">

    <persistence-unit name="contas">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <class>src.main.java.jpa.Conta</class>

        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/alura_jpa" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="senha" />

            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <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>

Obs: No caso, minha estrutura de diretorios ate o Conta.java é: src/main/java/jpa/Conta.java

Obs2: Já tentei alterar o "provider" conforme recomendado no final do video e continua o mesmo erro;

Obs3: Consigo conectar com o banco de dados por meio do login "root" e a "senha"

Editado: Ele roda com o arquivo disponibilizado no próximo capitulo referente a essa parte, mas nao entendi o pq. Notei algumas modificações no "pom" e no "persistence.xml", mas mesmo fazendo as devidas modificações o erro continua.

Você provavelmente copiou do texto abaixo do video, troque na pasta persistence.xml esse texto: org.hibernate.jpa.HibernatePersistence Por esse: <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

Eu fiz o que o Lucas Leme comentou e meu projeto voltou a funcionar.