Boa noite pessoal, estou estudando sobre hibernate com annotations e me deparei com o seguinte problema:
Exception in thread "main" org.hibernate.MappingException: Unknown entity: teste.Cliente
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:550)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1338)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:98)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at teste.HibernateDAO.salvar(HibernateDAO.java:18)
at teste.Principal.main(Principal.java:17)
as classes que estou usando são:
package teste;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import org.hibernate.annotations.Entity;
@Entity
@Table(name="CLIENTE")
public class Cliente implements Serializable{
/**
*
*/
private static final long serialVersionUID = 7467231787702303488L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(name="nome",nullable=false, length=60)
private String nome;
@Column(name="idade",nullable=false,length=5)
private Long idade;
public Cliente() {
}
public Long getId() {
return id;
}
@SuppressWarnings("unused")
private void setId(final Long id) {
this.id = id;
}
public Long getIdade() {
return idade;
}
public void setIdade(final Long idade) {
this.idade = idade;
}
public String getNome() {
return nome;
}
public void setNome(final String nome) {
this.nome = nome;
}
}
// Fim da Classe
package teste;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
public class HibernateDAO {
private SessionFactory factory;
private Session session;
public HibernateDAO() {
}
public void salvar(Cliente cli) {
factory = HibernateUtil.getSessionFactory();
session = factory.openSession();
session.beginTransaction();
session.save(cli);
session.getTransaction().commit();
}
}
package teste;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
//
//System.err.println("Initial SessionFactory creation failed. " + ex);
System.out.println(ex.getMessage());
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
package teste;
public class Principal {
/**
* @param args
*/
public static void main(String[] args) {
Cliente c1 = new Cliente();
c1.setNome("Raul Seixas");
c1.setIdade(new Long(12));
Cliente c2 = new Cliente();
c2.setNome("Bruce Dickinson");
c2.setIdade(new Long(13));
HibernateDAO hd = new HibernateDAO ();
hd.salvar(c1);
hd.salvar(c2);
}
}
o hibernate.cfg.xml está da seguinte forma:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<mapping class="teste.Cliente"/>
</session-factory>
</hibernate-configuration>
se alguém puder me ajudar a resolver esse entrave…
vlw!!