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

Configuração de ambiente - Persistence provider for EntityManager named

Olá pessoal,

Estou com dificuldade para configurar o ambiente, ocorre o erro: ''Persistence provider for EntityManager named financasp.''

  • Já conferi o nome "financasp" no arquivo XML;
  • O arquivo persistence.xml está dentro da pasta META-INF , dentro do SRC;
  • Utilizo o Eclipse Neon 1.0.
  • Estou utilizando MySql; -Hibernate release 4.3.5.Final

erro completo:

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named financasp at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) at testesnoJPA.TestaJpa1.main(TestaJpa1.java:26)

código 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="financasp">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <!-- Implementação do JPA, no nosso caso Hibernate -->
        <!-- Aqui são listadas todas as entidades -->
        <class>financasproj.financasp</class>
        <properties>
            <!-- Propriedades JDBC -->
            <!-- 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" />
            <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
            <property name="hibernate.connection.url" value="jdbc:mysql:///&lt;name&gt;"/>
        </properties>
    </persistence-unit>
</persistence> 


Classe testajpa

```package testesnoJPA;

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

import financasproj.financasp;

public class TestaJpa1 {

    public static void main(String[] args) {


        financasp cont = new financasp();
        System.out.println("digite agencia:");
        cont.setAgencia("2323");
        System.out.println("digite banco:");
        cont.setBanco("CAIXA");
        System.out.println("digite nuemro:");
        cont.setNumero("7542");
        System.out.println("digite titular:");
        cont.setTitular("joao");



        EntityManagerFactory emf = Persistence.createEntityManagerFactory("financasp");

        EntityManager em = emf.createEntityManager();


        em.getTransaction().begin();
        em.persist(cont);
        em.getTransaction().commit();

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

    }

}classe financasp

classe financasp

package financasproj;

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

@Entity
public class financasp {
    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    Integer id;
    String titular;

    public String getTitular() {
        return titular;
    }

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

    public String getNumero() {
        return numero;
    }

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

    public String getAgencia() {
        return agencia;
    }

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

    public String getBanco() {
        return banco;
    }

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

    String numero;
    String agencia;
    String banco;

}
17 respostas

Silvio, no seu arquivo persistence.xml você precisa especificar o driver de conexão corretamente e o endereço do seu servidor de banco de dados.

<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="financasp" transaction-type="JTA">

        <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>financasproj.financasp</class>

        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/[nome_da_base_de_dados]" />
            <property name="javax.persistence.jdbc.user" value="[nome_do_usuario_do_banco]" />
            <property name="javax.persistence.jdbc.password" value="[senha_do_usuario_do_banco]" />

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

Faça as alterações para a sua realidade nos lugares:

[nome_da_base_de_dados]

[nome_do_usuario_do_banco]

[senha_do_usuario_do_banco]

Esse erro deve desaparecer. Executa aí e dá um retorno...

Abraço.

Conseguiu resolver seu problema Silvio ?

não rolou..

<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="financasp" transaction-type="JTA">

        <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>financasproj.financasp</class>

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

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

obs: já conferi o numero da porta no xamp.

segue o projeto:

https://github.com/silvioAL/jpa.git

Alguém?

Qual o nome do banco de dados que você criou no seu mysql? tem certeza que foi financasp?

mysql> show databases; +---------------------+ | Database | +---------------------+ | information_schema | | controle_protocolos | | financasp | | mysql | | performance_schema | | sakila | | sys | | world | +---------------------+

cheguei a suspeitar dos jars, mas baixei novos e não surtiu efeito..


<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
    <classpathentry kind="lib" path="lib/required/antlr-2.7.7.jar"/>
    <classpathentry kind="lib" path="lib/required/cdi-api-1.1.jar"/>
    <classpathentry kind="lib" path="lib/required/classmate-1.3.0.jar"/>
    <classpathentry kind="lib" path="lib/required/dom4j-1.6.1.jar"/>
    <classpathentry kind="lib" path="lib/required/el-api-2.2.jar"/>
    <classpathentry kind="lib" path="lib/required/geronimo-jta_1.1_spec-1.1.1.jar"/>
    <classpathentry kind="lib" path="lib/required/hibernate-commons-annotations-5.0.1.Final.jar"/>
    <classpathentry kind="lib" path="lib/required/hibernate-core-5.2.6.Final.jar"/>
    <classpathentry kind="lib" path="lib/required/hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
    <classpathentry kind="lib" path="lib/required/jandex-2.0.3.Final.jar"/>
    <classpathentry kind="lib" path="lib/required/javassist-3.20.0-GA.jar"/>
    <classpathentry kind="lib" path="lib/required/javax.inject-1.jar"/>
    <classpathentry kind="lib" path="lib/required/jboss-interceptors-api_1.1_spec-1.0.0.Beta1.jar"/>
    <classpathentry kind="lib" path="lib/required/jboss-logging-3.3.0.Final.jar"/>
    <classpathentry kind="lib" path="lib/required/jsr250-api-1.0.jar"/>
    <classpathentry kind="lib" path="lib/jpa-metamodel-generator/hibernate-jpamodelgen-5.2.6.Final.jar"/>
    <classpathentry kind="lib" path="lib/jpa-metamodel-generator/mysql-connector-java-5.1.40-bin.jar"/>
    <classpathentry kind="lib" path="lib/required/hibernate-entitymanager-5.2.5.Final.jar"/>
    <classpathentry kind="lib" path="lib/required/mysql-connector-java-5.1.40-bin.jar"/>
    <classpathentry kind="lib" path="lib/required/jboss-transaction-api_1.1_spec-1.0.1.Final-sources.jar"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Altera essa linha só para testar.

  <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/financasp" />

para

    <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost/financasp" />

não funcionou, abri a aba "Problems", talvez realmente seja algum problema nos jars...

abaixo os erros:

1º - Description Resource Path Location Type The project cannot be built until build path errors are resolved ProjetoLoja Unknown Java Problem

2º - Description Resource Path Location Type The user library 'JPA-Hibernate' references non existing library 'C:\Users\silvi\Desktop\java\bibliotecas JPA\HIBERNATE\antlr-2.7.7.jar' ProjetoLoja Build path Build Path Problem

3º - Description Resource Path Location Type The user library 'MYSQL_CONNECTOR' references non existing library 'C:\Users\silvi\Desktop\java\bibliotecas JPA\MYSQL\mysql-connector-java-5.1.40-bin.jar' ProjetoLoja Build path Build Path Problem

hum qual erro que aparece no seu consóle?

este:


Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named financasp
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at testesnoJPA.TestaJpa1.main(TestaJpa1.java:26)

Uma duvida, como é o nome do seu projeto?

financasp

solução!

Olá Silvio,

Eu pesquisei um pouco e vendo alguns arquivos de configuração do Hibernate eu substitui o

<provider>org.hibernate.ejb.HibernatePersistence</provider>

por:

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

e o teste funcionou.

Espero ter ajudado

MUITO OBRIGADO MESMO!!!

Já não sabia mais o que fazer!!! rsrsrs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software