| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2006 10:05:02
|
phstc
JavaGuru
Membro desde: 13/04/2004 12:22:22
Mensagens: 200
Localização: São Paulo, SP
Offline
|
Pessoal,
Estou com dúvidas, numa implementação, vou mostar o problema, vejam qual caminho é mais performático.
>>Problema<<
EntidadeA possui um List populado com EntidadeB (exemplo, tabela Pai e tabela Filho, 0..*)
Tenho que exibir o total gasto com mesado do(s) filho(s)
|Nome Pai| |Outros dados do Pai| |Total Gasto com mesada|
>>Soluções<<
1 - Posso carregar Pai e todos seus filhos, faço uma iteração na lista de filhos e vou somando a mesada.
2 - Coloco um atributo BigDecimal totalMesada no pai, antes de exibi-lo faço um HQL
-------------//-------------//-------------//-------------
Tem outras sugestões? Qual é melhor?
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2006 10:50:05
|
faroestecaboclo
Thread.start()
![[Avatar]](/images/avatar/4530de238502b5aee3ad8eec65a4a70f.jpg)
Membro desde: 22/08/2006 14:28:55
Mensagens: 35
Offline
|
cara... se as informações q vc quer são apenas essas aew:
|Nome Pai| |Outros dados do Pai| |Total Gasto com mesada|
e não precisa detalhar os filhos, então não tem pq buscá-los.
faça esse hql pra trazer so o q vc precisa,... de uma vez so.
se for d um Pai só, faça esse hql q vc mandou... se for todos os pais, com seus respectivos totais de mesada, faz o HQL usando group by.
só usei o left join pra trazer tbm os casos q o pai não tem filhos. se não vc pode usar diretamente o join implicito:
Isso vai retornar uma coleção de Objects[] (vetor mesmo), onde cada object vai ser: object[0] - nome do pai, object[1] - idade do pai e object[2] - soma das mesadas.
Se preferir, pode tb criar um Objeto pra armazenar esses valores. tipo, um MesadaVO. dae vc faz assim:
q o hibernate retornará uma lista de MesadaVO instanciadas bunitinho.
nesse caso, claro, q vc terá q ter um construtor com esta assinatura q está usando no VO (String nome, int idade, BigDecimal mesada).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2006 10:56:12
|
phstc
JavaGuru
Membro desde: 13/04/2004 12:22:22
Mensagens: 200
Localização: São Paulo, SP
Offline
|
Animal cara, valeu pacas! Vou usar a opção do Left Join, atende perfeitamente. Não é necessária para o caso, mas achei legal o lance de dar new Object na instrução select!
Brigadão!
|
|
|
 |
|
|
|
|