Consulta no hibernate em cascata

4 respostas
ThiagoWorldCoder

Boa tarde pessoal, eu tenho uma classe GrupoEmpresarial onde nela tem uma lista de empresas, porém, quando eu faço o HQL “from GrupoEmpresarial” ele me retorna junto a lista de empresas, eu sei que vocês devem estar se perguntando, não é isso que ele queria? Mas acontece que pode ocorrer de eu querer buscar apenas o grupoempresarial, e nenhuma lista de empresas, como eu posso especificar isso no HQL? Será que eu tenho que especificar simplesmente os elementos que eu quero busca e não buscar a lista?

grato!!

4 Respostas

spycall

Voce deve colocar no mapeamento (XML ou annotation depende do que vc esta usando) lazy=true, aí ele não retorna a lista.
E se presisar que algum metodo que retorne a lista junto, vc cria o metodo e coloca assim:

Aqui ele retorna com a lista de empresas

F

Nao sei se entendi muito bem, mais la vai:

public GrupoEmpresarial getGrupoEmpresarial(int id){
   Query q = getSession().createQuery("from GrupoEmpresarial g where g.Id=?");
   q.setInteger(0, id);
   return (GrupoEmpresarial)  q.uniqueResult();
}

espero ter ajudado.

Fabio Passos.

ThiagoWorldCoder

eu entendi do lazy=“true”, só que eu não posso mudar no mapeamento, porque senão vai ficar sempre sem pegar as empresas, acontece que eu teria um select que pegaria o grupoEmpresarial com as empresas, e outro sem as empresas, entendeu?

spycall

Então, vc muda o mapeamento para lazy=true
no seu metodo que vc QUER que venha as empresas voce coloca
o grupoEmpresarial.getListEmpresas().size(); que aí virá com as empresas

e cria um metodo novo sem o
grupoEmpresarial.getListEmpresas().size();
que virá sem as empresas.

Criado 9 de janeiro de 2008
Ultima resposta 9 de jan. de 2008
Respostas 4
Participantes 3