Hibernate - Erro class Cliente not found while looking for property

2 respostas
jorhudson

Boa tarde galera,

Estou tentando gravar um cliente no meu banco de dados mysql utilizando o framework Hibernate.
Só que sempre quando tento gravar, me lança esse erro : class Cliente not found while looking for property: idCliente

Já verifiquei as configurações, mapeamentos das classes e etc … Só que não encontrei nada diferente do que eu aprendi.

Segue abaixo os codigos fontes …

Alguém poderia me da uma dica o que possa ser ?

main.java

package com.br.cit.bean;

import com.br.cit.enttity.Cliente;
import com.br.cit.persistence.ClienteDAO;

public class Main {
public static void main(String[] args) {
	Cliente cliente = new Cliente();
	cliente.setIdCliente(1);
	cliente.setLogin("Administrator");
	cliente.setNome("Jorge Hudson");
	cliente.setCpf("123456789");
	
	ClienteDAO cd = new ClienteDAO();
	try {
		cd.saveCliente(cliente);
	} catch (Exception e) {
		e.printStackTrace();
	}
}
}

Cliente.java

package com.br.cit.enttity;

public class Cliente {

	private Integer idCliente;
	private String login;
	private String cpf;
	private String nome;
	
	public Cliente() {
		super();
	}
	public Cliente(Integer idCliente, String login, String cpf, String nome) {
		super();
		this.idCliente = idCliente;
		this.login = login;
		this.cpf = cpf;
		this.nome = nome;
	}
	public Integer getIdCliente() {
		return idCliente;
	}
	public void setIdCliente(Integer idCliente) {
		this.idCliente = idCliente;
	}
	public String getLogin() {
		return login;
	}
	public void setLogin(String login) {
		this.login = login;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
}

cliente.hdm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC  
   "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
   "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
	 <hibernate-mapping>
	 <class name="Cliente" table="tbl_cliente">
	 <id name="idCliente" column="IDCLIENTE">
	 <generator class="assigned"/>
	 </id>
	 <property name="login" column="LOGIN" type="string"/>
	 <property name="cpf" column="CPF" type="string"/>
	 <property name="nome" column="NOME" type="string"/>
	 
	 <!-- Mapeamento Relacional -->
	 
	
	 </class>
	 </hibernate-mapping>

ClienteDao.java

package com.br.cit.persistence;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

import com.br.cit.enttity.Cliente;

public class ClienteDAO {

	private SessionFactory factory;
	
	public ClienteDAO(){
		factory = new Configuration().addClass(Cliente.class).buildSessionFactory();
	}
	
	public void saveCliente(Cliente cliente)throws Exception{
		Session session = factory.openSession();
		session.save(cliente);
		session.flush();
		session.close();
	}
	public void updateCliente(Cliente cliente)throws Exception{
		Session session =factory.openSession();
		session.update(cliente);
		session.flush();
		session.close();
	}
	public void deleteCliente(Cliente cliente)throws Exception{
		Session session = factory.openSession();
		session.delete(cliente);
		session.flush();
		session.close();
	}
}

mysql_hibernate.cfg.xml

<?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>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/cit</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">root</property>
	<mapping resource="com.br.cit.enttity.Cliente.hdm.xml"/>
 </session-factory>
</hibernate-configuration>

tbl_cliente.sql

create table tbl_cliente(
IDCLIENTE INTEGER NOT NULL,
LOGIN VARCHAR(15) NOT NULL,
CPF VARCHAR(9) NOT NULL,
NOME VARCHAR(25)NOT NULL,
PRIMARY KEY(IDCLIENTE)
);

2 Respostas

francislon

No arquivo cliente.hdm.xml modifique a seguinte linha:

&lt;class name="Cliente" table="tbl_cliente"&gt;

Pela:

&lt;class name="com.br.cit.enttity.Cliente" table="tbl_cliente"&gt;

O erro continuou?

jorhudson
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

Exception in thread main org.hibernate.HibernateException: Hibernate Dialect must be explicitly set

at org.hibernate.dialect.DialectFactory.determineDialect(DialectFactory.java:57)

at org.hibernate.dialect.DialectFactory.buildDialect(DialectFactory.java:39)

at org.hibernate.cfg.SettingsFactory.determineDialect(SettingsFactory.java:409)

at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:119)

at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2006)

at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1289)

at com.br.cit.persistence.ClienteDAO.(ClienteDAO.java:14)

at com.br.cit.bean.Main.main(Main.java:14)

Agora está dando isso … o que pode ser ? Acho que está algo de errado na minha maim …

Criado 12 de março de 2012
Ultima resposta 12 de mar. de 2012
Respostas 2
Participantes 2