[Resolvido] Problema com o Hibernate

Pessoal,

Comecei a seguir a apostila da caelum do curso FJ28, porém já no primeiro exercício estou encontrando dificuldades.

A exception que ocorre é essa:

Exception in thread "main" org.hibernate.MappingException: Unknown entity: br.org.molmedo.bean.Produto
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:691)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1485)
	at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:120)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
	at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
	at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50)
	at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
	at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:713)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:701)
	at org.hibernate.impl.SessionImpl.save(SessionImpl.java:697)
	at br.org.molmedo.main.TesteConexao.main(TesteConexao.java:26)

Mas a classe está mapeada conforme orientação da apostila:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">vt123</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="hibernate.hbm2ddl.auto">update</property>
		<property name="show_sql">true</property>
		<property name="format_sql">true</property>
	
		<mapping class="br.org.molmedo.bean.Produto"/>
	</session-factory>
</hibernate-configuration>

Minha classe Produto:

package br.org.molmedo.bean;

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

import org.hibernate.annotations.Entity;

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

}

E por fim, minha classe de teste:

package br.org.molmedo.main;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;

import br.org.molmedo.bean.Produto;

public class TesteConexao {
	public static void main(String[] args) {
		AnnotationConfiguration configuration = new AnnotationConfiguration();
		configuration.configure();
		configuration.addAnnotatedClass(br.org.molmedo.bean.Produto.class);  

		SessionFactory factory = configuration.buildSessionFactory();
		Session session = factory.openSession();
		System.out.println("Secao: "+session);
		
		Produto produto= new Produto();
		produto.setNome("Prateleira");
		produto.setDescricao("Uma prateleira para colocar livros");
		produto.setPreco(35.90);
		
		Transaction tx= session.beginTransaction();
		session.save(produto);
		tx.commit();

	}
}

A propósito, AnnotationConfiguration está deprecated. Continuo utilizando dessa maneira?

Os Jars importados para o projeto são:

  • antlr-2.7.6.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • hibernate-jpa-2.0-api-1.0.0.Final.jar
  • hibernate3.jar
  • javassist-3.12.0.GA.jar
  • jta-1.1.jar
  • slf4j-api-1.6.1.jar
  • mysql-connector-java-5.1.14-bin.jar

Obrigado.

Tira isso aki import org.hibernate.annotations.Entity
troque por esse import javax.persistence.Entity;

vlw

dcorteztec,

Obrigado.

Fico até envergonhado de postar um erro desse, mas faz parte.

E com relação ao AnnotationConfiguration deprecated? Sabe me dizer alguma coisa?

Que isso véio tamo ai pra isso msm.

Sobre a pergunta da uma olhada aki. http://migre.me/3IwWZ

vlw