Problemas no Mapeamento com Hibernate

3 respostas
gulira

Galera nao estou conseguindo fazer o relacionamento Many-to-one O que pode estar errado?
Vai o codigo:

Pais.java

package jcep.model;

public class Pais{

private int id = 0;

private String nome = null;

private String sigla = null;
getts e setters.....

}

Pais.hbm.xml

</class>

Estado.java

package jcep.model;

public class Estado {

private int id = 0;

private String nome = null;

private String sigla = null;

private Pais pais = null;
getters e setters.....

}

Estado.hbm.xml

Applicacao.java
inicio…
estadoDao = ApplicationFactory.getDAOFactory().getEstadoDAO();

pais.setNome("BRASIL");
pais.setSigla("BR");

estado.setNome("PARANA");
estado.setSigla("PR");
estado.setPais(pais);

estadoDao.insert(estado);

fim…

E aparece esta mensage…

2004-11-11 00:32:06,982 INFO hibernate.cfg.Binder -> Mapping class: jcep.model.Estado -> Estado
2004-11-11 00:32:06,982 DEBUG hibernate.cfg.Binder -> Mapped property: id -> estId, type: integer
2004-11-11 00:32:06,982 DEBUG hibernate.cfg.Binder -> Mapped property: nome -> estNome, type: string
2004-11-11 00:32:06,982 DEBUG hibernate.cfg.Binder -> Mapped property: sigla -> estSigla, type: string
2004-11-11 00:32:06,982 DEBUG hibernate.cfg.Binder -> Mapped property: pais -> paiId, type: jcep.model.Pais
2004-11-11 00:32:06,982 INFO hibernate.cfg.Configuration -> processing one-to-many association mappings
2004-11-11 00:32:06,982 INFO hibernate.cfg.Configuration -> processing one-to-one association property references
2004-11-11 00:32:06,982 INFO hibernate.cfg.Configuration -> processing foreign key constraints
2004-11-11 00:32:06,982 DEBUG hibernate.cfg.Configuration -> resolving reference to class: jcep.model.Pais

E não faz nada…

Desde já agradeço

3 Respostas

_fs

Bem, não dá para perceber muita coisa nesse código hehe o mapeamento aparentemente está correto. Cadê o código do DAO?

gulira

Lipe. Consegui resolver o problema!!! o sistema nao estava encontrando o arquivo de configuração do hibernate “hibernate.cfg.xml”. entao eu criei uma classe extendida de net.sf.hibernate.cfg.Configuration; e inclui nos minhas classes DAO. Entao ficou assim:

package jcep.dao.hibernate;

import jcep.model.*;

import net.sf.hibernate.MappingException;

import net.sf.hibernate.cfg.Configuration;
public class JCEPConfig extends Configuration {

public JCEPConfig(){

try {

this.addClass(Pais.class);

this.addClass(Estado.class);

} catch (MappingException e) {

System.out.print("Arquivo de Mapeamento nao encontrado "+e.getMessage());

}

}

}

package jcep.dao.hibernate;

import java.util.List;

import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;

import jcep.dao.EstadoDAO;
import jcep.model.Estado;

public class EstadoDAOHibernate implements EstadoDAO{
protected SessionFactory factory = new JCEPConfig().buildSessionFactory();

public EstadoDAOHibernate() throws Exception{		
}		

public void delete(Object objeto) throws Exception {
	Session session = factory.openSession();
	session.delete(objeto);
	session.flush();
	session.close();		
}
public List getList(String condicao) throws Exception {
	Session session = factory.openSession();
	List estados = session.find(condicao);
	session.flush();
	session.close();
	return estados;
}
public void insert(Object objeto) throws Exception {
	Session session = factory.openSession();
	session.save(objeto);
	session.flush();
	session.close();
}
public Object retrive(String pk) throws Exception {
	Session session = factory.openSession();
	Estado estado = (Estado)session.load(Estado.class,new Integer(pk));
	session.flush();
	session.close();
	return estado;
}

}

Esta seria a melhor solução???
Ou qual seria a melhor???

_fs

Entendi! Mas isso não estava aparecendo no log do server?

E, não sei como o pessoal faz normalmente, mas eu coloco todas as declarações de mapeamentos no hibernate.cfg.xml pra carregar tudo de uma vez no init da aplicação. Demora uns 3 segundos para os 60 mapeamentos, e não preciso ficar me preocupando com isso depois :smiley:

Criado 11 de novembro de 2004
Ultima resposta 12 de nov. de 2004
Respostas 3
Participantes 2