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

No Persistence provider for EntityManager named financa

Boa noite, estou utilizando a versão 5.2 do Hibernate e estou tendo esse problema para compilar. Se eu utilizo as libs diponiveis para download funciona, porem quando eu utilizo o Hibernate atual recebo esse erro. O que fazer para o projeto funcionar com a ultima versão do Hibernate?

obrigado

<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="financa">
        <!-- Implementação do JPA, no nosso caso Hibernate -->
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!-- Aqui são listadas todas as entidades -->
        <class>br.cesar.hb.financas.modelo.Conta</class>
        <properties>
            <!-- Propriedades JDBC -->
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/financa" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="123" />
            <!-- Configurações específicas do Hibernate -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
            <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>
package br.cesar.hb.financas.main;

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

import br.cesar.hb.financas.modelo.Conta;

public class TestaJPA {

    public static void main(String[] args) {

        Conta conta = new Conta("Cesar", "HSBC", "123", "45667");

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("financa");
        EntityManager em = emf.createEntityManager();

        em.getTransaction().begin();

        em.persist(conta);

        emf.close();
        em.close();
    }

}
package br.cesar.hb.financas.modelo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Conta {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)

    private int id;
    private String titular;
    private String banco;
    private String agencia;
    private String numero;

    public Conta(String titular, String banco, String agencia, String numero) {
        super();
        this.titular = titular;
        this.banco = banco;
        this.agencia = agencia;
        this.numero = numero;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitular() {
        return titular;
    }

    public void setTitular(String titular) {
        this.titular = titular;
    }

    public String getBanco() {
        return banco;
    }

    public void setBanco(String banco) {
        this.banco = banco;
    }

    public String getAgencia() {
        return agencia;
    }

    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

}
7 respostas

Ola, César Augusto !

Da uma conferidinha no nome do seu Persistence provider se é "financa" ou "financas"

Abraço!

é financa, ele funciona normal com a versão do hibernate que esta pra download no exercicio como expliquei. Quando eu uso o que eu baixei no site do hibernate que é o mais atual ele não compila..

solução!

Oi César,

nao usa essa versão do hibernate. expliquei isso no outro post desse forum, essa versão do hibernate está bugada.

Além disso, o curso não foi homologado e testado com esses libs. Aconselho usar as bibliotecas fornecidas no curso.

abs

A classe que provê a implementação da JPA mudou nessa versão nova do hibernate. Mude o seu provider no persistence.xml para:

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

Nico, A versão do hibernate no site é a 5.5.5, bem mais atual do que a do curso. O próprio curso sugere que tentamos usar a versão mais atual. O meu desconforto em usar a versão disponibilizada no site é que quando estiver trabalhando numa empresa, e precisar utilizar a versão mais atual, não saberei como fazer. Não posso ficar eternamente utilizando a versão disponibilizada no site da Alura. Será que esse curso não merece uma revisão/atualização?

Oi Mario, vamos atualizar o curso, está na nossa lista com prioridade.

O meu ponto é, mesmo atualizando as libs, as funcionalidades do JPA não mudaram. Não houve uma atualização do JPA, apenas do Hibernate por baixo dos panos.

Eu aconselho sim atualizar as biblioteca mas apenas no final do projeto. Assim vc tem a certeza que projeto quebrou por causa da atualização e não por causa de um problema no uso da API. Além disso, vc já tem o conhecimento e a confiança de julgar melhor o problema, pois já entendeu o JPA, vc sabe o que deve funcionar.

De qq forma, vamos sim refazer o curso!

Obrigado pelo feedback, Nico

Tive o mesmo problema e resolvi com a solução postada pelo Gustavo (Mudar o provier).