Erro: JPA

30 respostas
vjfenix

Estou gerando tabela atraves do hibernate porém está me dando um erro:

Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named jpa_hibernate

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

at br.com.junior.jpa.hibernate.GenerateDatabase.main(GenerateDatabase.java:12)

Alguém pode me ajudar??

30 Respostas

T

vc inseriu os jars do toplink, hibernate kodo ou qqer outro nas libraries do projeto?

vjfenix

sim, eu add os jars do hibernate-3.2, hibernate-annotations-3.2.1.GA e hibernate-entitymanager-3.3.1.GA

rafaelglauber

Já criou seu persistence.xml e colocou no seu classpath??? caso tenha criado e colocado na RAIZ do seu class path, e nao em uma package, posta ele ai para darmos uma olhada.

vjfenix

Olá Rafael,

Não entendi quando você falou para colocar no meu raiz… mas de qualquer forma segue código:





<property name="hibernate.dialect"value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url"value="jdbc:mysql://localhost/jpa_hibernate"/>
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value=""/>
    </properties>
</persistence-unit>

package br.com.junior.jpa.hibernate;

import javax.persistence.EntityManager;

import javax.persistence.EntityManagerFactory;

import javax.persistence.Persistence;

public class GenerateDatabase {

public static void main(String[] args) {
	EntityManagerFactory efm =  Persistence.createEntityManagerFactory("jpa_hibernate");
	EntityManager em = efm.createEntityManager();
	
	em.close();
	efm.close();
}

}

vjfenix

Desculpe… mas eu não coloquei o erro que está dando agora:

Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named jpa_hibernate

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

at br.com.junior.jpa.hibernate.GenerateDatabase.main(GenerateDatabase.java:11)

22:50:31,343  INFO Version:15 - Hibernate Annotations 3.3.0.GA

22:50:31,359  INFO Environment:514 - Hibernate 3.2.5

22:50:31,375  INFO Environment:547 - hibernate.properties not found

22:50:31,375  INFO Environment:681 - Bytecode provider name : cglib

22:50:31,375  INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling

22:50:31,484  INFO Version:15 - Hibernate EntityManager 3.3.1.GA

22:50:31,515  INFO Ejb3Configuration:210 - Could not find any META-INF/persistence.xml file in the classpath
rafaelglauber

coloque seus arquivos xmls (persistence.xml e outros) na raiz do SRC…não coloque em nenhuma package ou outra pasta, era isso que queria dizer, esse último erro é justamente corrigido assim. :smiley:

vjfenix

Rafael,

Ainda está dando o mesmo erro… cara eu acho que ainda estou fz errado… vc pode me ajudar mais uma vez

até

rafaelglauber

Posso, me diga qual IDE você tá usando e te falo o que deve fazer exatamente.

bland

Acho que você está errando na chamada do seu EntityManager. No seu persistence.xml vc utiliza o jpa-hibernate, e na sua classe você está utilizando jpa_hibernate. Verifique isso.

Abraço.

rafaelglauber

não tinha me atentado para isso, mas de qualquer forma tem que fazer as duas coisas, tanto colocar corretamento o persistence.xml no raiz classpath e fazer o que o camarada falou, corrigir a chamada. :smiley:

vjfenix

bland:
Acho que você está errando na chamada do seu EntityManager. No seu persistence.xml vc utiliza o jpa-hibernate, e na sua classe você está utilizando jpa_hibernate. Verifique isso.

Abraço.

Rafael,

Estou usanso o Eclipse…

Abraço

rafaelglauber

Na pasta “src” coloque o seu arquivo persistence.xml, nao coloque ele em nenhuma subpasta.

ps. já fez o que o amigo falou? corrigir o nome do seu PU?

vjfenix

bland:
Acho que você está errando na chamada do seu EntityManager. No seu persistence.xml vc utiliza o jpa-hibernate, e na sua classe você está utilizando jpa_hibernate. Verifique isso.

Abraço.

bland

Realmente estava errado… mas mesmo assim continua com problema… cara eu acho que o Rafael tem razaão quendo ele diz do persistence.xml porém não sei como fz isso

rafaelglauber

velho, veja esse screencat " Screencast - Primeiros Passos para a JPA" em: http://blog.caelum.com.br/category/screencast/

tem o passo-a-passso justamente usando eclipse, depois de ver ele te digo, será impossível que seu programa não rode de acordo com as instruções dele.

espero ter ajudado.

vjfenix

rafaelglauber:
velho, veja esse screencat " Screencast - Primeiros Passos para a JPA" em: http://blog.caelum.com.br/category/screencast/

tem o passo-a-passso justamente usando eclipse, depois de ver ele te digo, será impossível que seu programa não rode de acordo com as instruções dele.

espero ter ajudado.

Valeu…

leandros

Cara o que tá faltando é uma tag chamada provider que fica no persistence.xml.
Lembrando que o persistence.xml tem que ficar na pasta META-INF dentro do seu diretório src.

Exemplo da tag que eu mencionei…

org.hibernate.ejb.HibernatePersistence

Esse provider é o do Hibernate, verifique qual provider vc deseja usar para o Toplink.

vjfenix

rafaelglauber:
velho, veja esse screencat " Screencast - Primeiros Passos para a JPA" em: http://blog.caelum.com.br/category/screencast/

tem o passo-a-passso justamente usando eclipse, depois de ver ele te digo, será impossível que seu programa não rode de acordo com as instruções dele.

espero ter ajudado.

Rafael, Blz!!

Cara dei uma olhada lá e consegui tirar umas duvidas… agora referente aquele erro eu acho que o problema está no persistence.xml acredito que ele não está reconhecendo esse arquivo… lá no screencast o xml fica de uma outra cor … você pode me ajudar mais uma vez…

rafaelglauber

não entendi? o que isso tem haver?

vjfenix

não entendi? o que isso tem haver?

Cara… na verdade é que já tentei de tudo e não da certo… acho que viajei nessa… mas fiz da mesma forma que o screecast … e infelizmente não adianatou continua dando erro:

Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named jpa_hibernate

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

at br.com.junior.jpa.hibernate.GenerateDatabase.main(GenerateDatabase.java:11)

você não teria uma exemplo ai com você pra mim rodar aqui e comparar …??

Obrigado pela atenção

rafaelglauber

posta ai usando “quote” o seu persistence.xml novamente.

vjfenix





<property name="hibernate.dialect"      [quote]value="org.hibernate.dialect.MySQLDialect"/>
		<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
		<property name="hibernate.connection.url" value="jdbc:mysql://localhost/MYDATABASE"/>
		<property name="hibernate.connection.username" value="root" />
		<property name="hibernate.connection.password" value=""/>
	</properties>
</persistence-unit>  
  </persistence>
vjfenix





<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
		<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
		<property name="hibernate.connection.url" value="jdbc:mysql://localhost/MYDATABASE"/>
		<property name="hibernate.connection.username" value="root" />
		<property name="hibernate.connection.password" value=""/>
	</properties>
</persistence-unit>  
  </persistence>

[quote]

rafaelglauber

perdão, eu disse Quote e era Code…hahahah

mas vamos lá, em <persistence-unit name="jpa-hibernate">

coloque: <persistence-unit name="jpa_hibernate">

vjfenix

rafaelglauber:
perdão, eu disse Quote e era Code…hahahah

mas vamos lá, em <persistence-unit name="jpa-hibernate">

coloque: <persistence-unit name="jpa_hibernate">

Rafael, Bom Dia!!!

Cara fiz a auteração e agora está dando o erro abaixo:

Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named jpa_hibernate

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:55)

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:33)

at br.com.junior.jpa.hibernate.GenerateDatabase.main(GenerateDatabase.java:13)

06:27:34,359  INFO Version:15 - Hibernate Annotations 3.3.0.GA

06:27:34,390  INFO Environment:514 - Hibernate 3.2.5

06:27:34,390  INFO Environment:547 - hibernate.properties not found

06:27:34,406  INFO Environment:681 - Bytecode provider name : cglib

06:27:34,406  INFO Environment:598 - using JDK 1.4 java.sql.Timestamp handling

06:27:34,500  INFO Version:15 - Hibernate EntityManager 3.3.1.GA

06:27:34,531  INFO Ejb3Configuration:210 - Could not find any META-INF/persistence.xml file in the classpath
rafaelglauber

Esse erro é de configuração, já verificamos todos os pontos com relação a configuração do seu programa…se o seu programa for somente para estudo manda o projeto para meu email que quando tiver tempo verifico o motivo de não funcionar.

vjfenix

rafaelglauber:
Esse erro é de configuração, já verificamos todos os pontos com relação a configuração do seu programa…se o seu programa for somente para estudo manda o projeto para meu email que quando tiver tempo verifico o motivo de não funcionar.

Ok

rafaelglauber
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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_1_0.xsd">
  <persistence-unit name="jpa_hibernate" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.junior.jpa.hibernate.User</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <!-- cuidado com essa propriedade, pesquise sobre ela -->
      <property name="hibernate.hbm2ddl.auto" value="create"/>
      <property name="hibernate.query.substitutions" value="true=1, false=0"/>        
      
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpa_hibernate"/>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
     
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      
    </properties>
  </persistence-unit>
</persistence>
vjfenix
rafaelglauber:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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_1_0.xsd">
  <persistence-unit name="jpa_hibernate" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.junior.jpa.hibernate.User</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <!-- cuidado com essa propriedade, pesquise sobre ela -->
      <property name="hibernate.hbm2ddl.auto" value="create"/>
      <property name="hibernate.query.substitutions" value="true=1, false=0"/>        
      
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpa_hibernate"/>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
     
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      
    </properties>
  </persistence-unit>
</persistence>

Rafael,

O Arquivo está na raiz mesmo??

Valeu

vjfenix
rafaelglauber:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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_1_0.xsd">
  <persistence-unit name="jpa_hibernate" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.junior.jpa.hibernate.User</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <!-- cuidado com essa propriedade, pesquise sobre ela -->
      <property name="hibernate.hbm2ddl.auto" value="create"/>
      <property name="hibernate.query.substitutions" value="true=1, false=0"/>        
      
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpa_hibernate"/>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
     
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      
    </properties>
  </persistence-unit>
</persistence>

Quer dizer .. estava

vjfenix
rafaelglauber:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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_1_0.xsd">
  <persistence-unit name="jpa_hibernate" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.junior.jpa.hibernate.User</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="hibernate.show_sql" value="true"/>
      <!-- cuidado com essa propriedade, pesquise sobre ela -->
      <property name="hibernate.hbm2ddl.auto" value="create"/>
      <property name="hibernate.query.substitutions" value="true=1, false=0"/>        
      
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost/jpa_hibernate"/>
      <property name="hibernate.connection.username" value="root"/>
      <property name="hibernate.connection.password" value=""/>
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
     
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      
    </properties>
  </persistence-unit>
</persistence>

Rafael, Blz!!!!

Cara no META-INF somente vai ficar o persistence.xml??

é que continua dando erro ..

Criado 22 de outubro de 2007
Ultima resposta 6 de nov. de 2007
Respostas 30
Participantes 5