Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
10
respostas

Duvida - Configuração e inicalizacao do JPA

Quando tento executar minha classe TesteJPA, o eclipse esta retornando o seguinte erro:

Classe Conta,TesteJPA e persistence.xml esta igual ao do item: Configuração e inicialização do JPA.

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named financas
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at br.com.caelum.financas.modelo.jpa.TesteJPA.main(TesteJPA.java:18)

Mas irei postar o arquivo 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">
    <!-- unidade de persistencia com o nome financas -->
    <persistence-unit name="financas">
        <!-- Implementação do JPA, no nosso caso Hibernate -->
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!-- Aqui são listadas todas as entidades -->
        <class>br.com.caelum.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/financas" />
            <property name="javax.persistence.jdbc.user" value="root" />
            <property name="javax.persistence.jdbc.password" value="p@ssword" />
            <!-- 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>

O que pode estar de errado '-' ?

10 respostas

Oi Julio,

Acredito que a JPA não esteja encontrando o seu arquivo persistence.xml. Dá uma conferida se ele está dentro do diretório META-INF do seu diretório src. Se estiver em algum outro diretório ele não funciona.

Abraço!

Sim o aarquivo persistence esta dentro da pasta meta-inf dentro do src

Julio,

O diretório META-INF está em maiúsculo mesmo?

Abraço!

Sim esta em maiusculo

Oi Julio,

Coloca o link do github do seu projeto para que eu possa dar uma olhada?

Abraço!

Posta suas classes também..

Joviane, segue o link do github.

https://github.com/sleepk/financas

Joao, como informado as classes e configuracao do persistence.xml sao as mesmas do exemplo dado pelo professor =)

solução!

pessoal, consegui solucionar o problema que estava enfrentando.

Estava usando a ultima versao do hibernate (5.22 final) e o que ocorre, nesta versão não ha um .jar com o nome de hibernate-entitymanager....

Solucao: Este arquivo hibernate-entitymanager, era o arquivo que estava faltando para solucionar o meu problema, sendo assim tive que usar todos os jars. que foi disponibilizado (menos o do banco de dados).

Minha duvida agora é: Ha algum outro arquivo que pode ser utilizado no lugar dele, nesta ultima versão do hibernate?

Oi Julio,

É que para usar com a JPA tem que ser o hibernate-entitymanager ao invés do hibernate-core.

Abraço

hmm intendi, bem muito obrigado pela ajuda, vou tentar mandar a sugestao para utilizar as libs disponibilizadas no curso e informar pra nao deixar de importar o hibernate-entitymanager :), pois so descobri que estava faltando esta lib pelo video, se for seguir a explicacao nela nao fala nada =/

Mas obrigado abraços.