Duvida Hibernate

3 respostas
D

Tenho duas classe pessoa e endereco , onde a relação é de é de N para 1.

Pessoa
---------------
id_pessoa int
id_endereco int
nome string

Endereco
-------------
id_endereco int
rua string

aqui a classe PessoaDAO
public class PessoaDAO
        extends BaseDAO<Long, Pessoa> {
.
.
.

 public Collection<Pessoa> BuscaDadosPorNome(final String nome) {

        return  getSession().createCriteria(Pessoa.class)
                .add(Restrictions.like("nome", nome, MatchMode.START))
                .createCriteria("endereco")
                .list();
    }

}
aqui a classe teste
public class Teste2 {
    

    public static void main(String[] args) throws IOException {

        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        sessionFactory.getCurrentSession().beginTransaction();
 System.out.println("***********Testando metodo*************");
        PessoaDAO pessoaDAO = new PessoaDAO(sessionFactory);
        Collection<Pessoa> pessoa = pessoaDAO.BuscaDadosPorNome("A");
        for (Pessoa pessoas : pessoa) {
            System.out.println("ID: " + pessoas.getId() + " Nome : " + pessoas.getNome() +"| Endereco: "+pessoas.getEndereco());
        }

        /*for (Pessoa pessoas: pes){
        System.out.println("pessoas : "+pessoas.getNome());
        }*/
        sessionFactory.close();

       
    }
     
}

executando a clasee teste me retorna isso como resultado:

ID: 385 Nome : Alex| Data Nascimento: 2009-01-22 00:00:00.0| Endereco: Endereco@20590c62

A minha duvida seria como eu podiaria fazer para ele mostra a rua da classe endereco.

3 Respostas

emmanuelrock

Acho que ficaria melhor o id_endereco em pessoa ser do tipo Endereco. Aí você poderia fazer:

for (Pessoa pessoas : pessoa) {  
             System.out.println("ID: " + pessoas.getId() + " Nome : " + pessoas.getNome() +"| Endereco: "+pessoas.getEndereco().getRua());  
 }

Abraço…

D

Vlw cara , nao tinha me ligado nessa… :wink:

pdioniziofilho

pq simplesmente nao sobrescreve o metodo toString da classe endereço para escrever as informaçoes que voce quer?

Criado 28 de agosto de 2009
Ultima resposta 28 de ago. de 2009
Respostas 3
Participantes 3