| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/10/2011 09:43:22
|
thiagocg
Virtual Machine Man
![[Avatar]](/images/avatar/e22c686bc771d5872150738b15f3e533.jpg)
Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline
|
Bom dia pessoal, imaginem o seguinte cenário:
Uma pessoa tem muitos apelidos e muitos telefones, criei uma classe (vo) que me retorna os dados que preciso da classe pessoa mais uma lista de String de apelidos e outra lista de String de telefones.
Ex da classe PessoaVO:
Na consulta faço um select new PessoaVO(p.id, p.nome, p.sobreNome, (subselect de apelidos), (subselect de telefones)).
Até onde eu sei não é permitidido devolver mais de um registro em um subselect na clausula select, então não estou conseguindo devolver as listas para o construtor do meu 'VO', como vcs resolveriam esta questão?
O meu cenario é bem mais complexo e o exemplo apresentado é apenas para ilustrar a situação, mas o relevante para este problema é a questão do subselect que devolve a lista para meu construtor.
Grato a todos.
[]'s
|
________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/10/2011 09:52:58
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
cara,
vc tentou fazer assim,
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/10/2011 09:55:43
|
CharlesAlves
JavaTeenager
![[Avatar]](/images/avatar/ab8991c0aba490b477fd8b7d9dd1f2e1.jpg)
Membro desde: 14/06/2011 08:26:09
Mensagens: 155
Localização: Recife - PE
Offline
|
Bom como você está utilizando hibernate para fazer a pesquisa ele já faz a associação direta e te retorna os telefones e apelidos do usuário, a não ser que você queira fazer um filtro e pegar somente algum deles, tenta fazer por criteria.
Só é manter a sessão aberta ou marcar os campos como eager que ele retorna tudo que você precisa.
|
"Se o problema tem solução, não esquente a cabeça, porque tem solução. Se o problema não tem solução, não esquente a cabeça, porque não tem solução"
(Provérbio Chines)
"O problema são problemas demais, Se não correr atrás da maneira certa de solucionar"
(Chico Science)
O tempo é um bom professor, mas infelizmente costuma matar os seus alunos.
(Hector Berlioz)
@charlesAlvesTI |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/10/2011 10:01:14
|
thiagocg
Virtual Machine Man
![[Avatar]](/images/avatar/e22c686bc771d5872150738b15f3e533.jpg)
Membro desde: 08/04/2006 11:07:07
Mensagens: 541
Localização: Campo Grande - MS
Offline
|
Obrigado pelas respostas, mas meu cenário como eu disse é bem mais complexo e eu não posso colocar o relacionamento como eager e nem mesmo navegar pelo grafo de objetos para pegar as coleções associadas, por este motivo utilizei a estrategia do 'VO' com subconsultas.
Vou continuar pesquisando, obrigado pessoal.
Toda ajuda é bem vinda
[]'s
This message was edited 1 time. Last update was at 24/10/2011 10:01:45
|
________________________________
Thiago Araujo da Silva
Analista de Sistemas
Tecnólogo em Processamento de Dados (Estácio - CG/MS)
Especialista em Desenvolvimento de Aplicações em Java (Uniderp - CG/MS)
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/10/2011 10:03:37
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
entao cara,
acho que vc vai ter que fazer uma query native para resolver seu problema.
t+
|
|
|
 |
|
|