Como devolver uma lista em um subselect (hibernate)  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
thiagocg
Virtual Machine Man
[Avatar]

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)
[Email] [MSN]
alissonvla
GUJ Master

Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline

cara,

vc tentou fazer assim,



t+
CharlesAlves
JavaTeenager
[Avatar]

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
thiagocg
Virtual Machine Man
[Avatar]

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)
[Email] [MSN]
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+
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team