Como trazer uma lista com o resultado de duas tabelas diferentes no hibernate?

2 respostas
S

Tenho duas classes de clientes, uma de cliente físico e outra de cliente jurídico, as duas herdam da classe pessoa, quando preciso trazer uma lista de uma delas eu faço issono DAO:

public List<ClienteFisica> listarClienteFisico(){
		List<ClienteFisica> lista;
		Session session = HibernateUtil.getSession();
		Transaction tr = session.beginTransaction();
		
		Criteria cr = session.createCriteria(ClienteFisica.class);
		cr.addOrder(Order.asc("nome"));
		lista = cr.list();
		tr.commit();
		return lista;
	}

Como faço para me trazer o resultado das duas tabelas de clientes ao mesmo tempo uma só list?

2 Respostas

asandrob

Faz um list de Pessoa!
E no DAO popula com as duas consultas…

public List<Pessoa> listarCliente(){   
        List<Pessoa> lista = ArrayList<Pessoa>();   
        Session session = HibernateUtil.getSession();   
        Transaction tr = session.beginTransaction();   
           
        Criteria cr1 = session.createCriteria(ClienteFisica.class);   
        cr1.addOrder(Order.asc("nome"));   

        Criteria cr2 = session.createCriteria(ClienteJuridica.class);   
        cr2.addOrder(Order.asc("nome"));   

        lista.addAll(cr1.list());
        lista.addAll(cr2.list());

        tr.commit();   
        return lista;   
    }

Acho que funciona…

S

Vlw, estou respondendo do celular então não posso testar agora, mas assim que chegar em casa vou testar.

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