Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Erro "No prersistence provider for EntityManagernamed

Bom dia, estou no inicio do curso de JPA, criei meu 1º projeto de acordo ao video-aula, a diferença que uso o postgree, segue o erro:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named financas-postgres at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) at br.com.caelum.financas.teste.TestConta.main(TestConta.java:25)

O arquivo persistence esta criado no diretório src\META-INF e uso o JBOSS Developer Studio

8 respostas

Max

coloca o código do seu persistence.xml pra gente

Segue o persistence.xml:

org.hibernate.ejb.HibernatePersistence br.com.caelum.financas.modelo.Conta

Max,

copie e cole o código do arquivo persistence.xml inteiro

coloque dentro do inserir código

Desculpe, não tinha conhecimento


    <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">
    <!-- unidade de persistencia com o nome financas -->

    <persistence-unit name="financas-postgres">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>br.com.caelum.financas.modelo.Conta</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost/contas" />
            <property name="javax.persistence.jdbc.user" value="" />
            <property name="javax.persistence.jdbc.password" value="postgree17" />

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

</persistence>

Max, mande também o código do Persistence.java e TestConta.java

seu persistence.xml parece estar correto

Jefferson, qual persistence.java, no vídeo-aula não menciona esse arquivo.

Esse é o TestConta:

package br.com.caelum.financas.teste;

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

import br.com.caelum.financas.modelo.Conta;

public class TestConta {

    public static void main(String[] args) {

        Conta c = new Conta();

        c.setTitular("Max Porto");
        c.setAgencia("3536x");
        c.setBanco("Banco Brasil");
        c.setNumero("1234");

        /*chama a JPA para persistencia no banco
         * EntityManager -:> classe principal que exexuta a JPA , executa toadas as operação nas entidades
         * é um gerenciador de entidades
         * EntityManagerFactory -:> cria o EntityManager
         * */
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("financas-postgres"); /*instancia o EntityManagerFactory */
        EntityManager em = emf.createEntityManager();

        /*pede para o EntiryManager/JPA persistir a conta no banco*/
        em.getTransaction().begin(); /*abre transação*/
        em.persist(c);
        em.getTransaction().commit();
        em.close();
        emf.close();
    }
}
solução!

max

eu estava vendo a segunda aula desse curso e o persistence.xml esta configurado de outra forma. A tag provider esta assim

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

troque e veja se funciona

Jefferson, valeu era isso mesmo, o provider estava errado.

Muito Obrigado !