Erro Hibernate

4 respostas
W

Configurei o Hibernate e estou testando uma simples aplicação, o erro diz respeito ao persistence.xml.
Para criar o persistence.xml fui em new ->other->general->file. Alguém pode me ajudar:

1 [main] INFO  org.hibernate.annotations.common.Version - Hibernate Commons Annotations 3.2.0.Final

17 [main] INFO  org.hibernate.cfg.Environment - Hibernate 3.6.10.Final

20 [main] INFO  org.hibernate.cfg.Environment - hibernate.properties not found

27 [main] INFO  org.hibernate.cfg.Environment - Bytecode provider name : javassist

36 [main] INFO  org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling

188 [main] INFO  org.hibernate.ejb.Version - Hibernate EntityManager 3.6.10.Final

228 [main] INFO  org.hibernate.ejb.Ejb3Configuration - Could not find any META-INF/persistence.xml file in the classpath

Exception in thread main javax.persistence.PersistenceException: No Persistence provider for EntityManager named lojavirtualDB

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

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

at teste.TestaInsereProduto.main(TestaInsereProduto.java:17)
Classe Produto

package entities;

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

@Entity
public class Produto {
	@Id
	@GeneratedValue
	private int id;
	private String nome;
	private float preco;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public float getPreco() {
		return preco;
	}
	public void setPreco(float preco) {
		this.preco = preco;
	}
}

=============================================

Classe Main

package teste;

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

import entities.Produto;

public class TestaInsereProduto {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		EntityManagerFactory factory = Persistence.createEntityManagerFactory("lojavirtualDB");
		EntityManager em = factory.createEntityManager();
		
		Produto p = new Produto();
		p.setNome("Camiseta");
		p.setPreco((float) 12.23);
		
		em.getTransaction().begin();
		em.persist(p);
		em.getTransaction().commit();
		
		
		

	}

}
=================================
Persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="lojavirtualDB">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>entities.Produto</class>
<properties>
<property name="hibernate.dialect"
    value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />

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

log4j.properties

log4j.rootCategory=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%r [%t] %-5p %c - %m%n

Lembrando que no banco eu tenho :

Shema : lojavirtualDB

4 Respostas

asandrob

Verifica se o persistence.xml está dentro de src/META-INF…

W

O persistence.xml esta fora do src sim.

asandrob

Então põe em src/META-INF/persistence.xml e testa.

W

asandrob realmente coloquei o persistence.xml dentro deo src, funcionou. Muito obrigado pela ajuda.
No caso tinha criado a pasta dentro do projeto. + uma vez o meu obrigado…

Criado 1 de maio de 2012
Ultima resposta 1 de mai. de 2012
Respostas 4
Participantes 2