| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/06/2010 11:30:20
|
Rangel Zutin
Thread.start()
![[Avatar]](/images/avatar/621d3f8d356fc58ce37b85f449136de9.jpg)
Membro desde: 24/01/2009 10:29:39
Mensagens: 41
Localização: Sao Paulo - Brazil
Offline
|
Amigos,
Estou levando uma surra da HQL.
Tenho minha classe AccountToPay (Entity) e quero fazer a soma (SUM) de todos os valores (AP.amount) agrupados fornecedor (SP.supplier) se a a conta esta paga ou nao (AP.paid) mas estou tendo a seguinte Exception. Seguem meus codigos. Qualquer ajuda ou comentario sao bem-vindos.
EXCEPTION:
ENTITY:
DAO:
TESTE:
Valeu pessoal!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/06/2010 13:43:06
|
Rangel Zutin
Thread.start()
![[Avatar]](/images/avatar/621d3f8d356fc58ce37b85f449136de9.jpg)
Membro desde: 24/01/2009 10:29:39
Mensagens: 41
Localização: Sao Paulo - Brazil
Offline
|
Pessoal,
pelo que eu analisei, o Hibernate nao esta montando a query da maneira correta. Segue a query.
Nao entendi porque ele busca os campos supplier1_.description e supplier1_.name, mas pra fazer dessa maneira ele nao teria que agrupar esses campos? Estou usando HQL de maneira errada?
Obrigado!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/06/2010 17:10:02
|
partenon
JavaChild
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline
|
Quando voce manda o Hibernate retornar um objeto (e nao suas propriedades individuais), o Hibernate na verdade faz um select no banco de dados pelas colunas individuais. Isso para garantir que a coluna X estara na posicao Y, de forma que ele consiga mapear fielmente.
Entao, uma saida que eu vejo para o seu caso eh mandar agrupar tambem pelos campos extras que o Hibernate especifica (supplier.id, description e name). Outra saida eh vc usar "native SQL query", mas dai vc precisa usar um result transformer, para informar ao Hibernate como mapear o retorno da query.
|
http://www.google.com/profiles/partenon |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/06/2010 18:48:39
|
Rangel Zutin
Thread.start()
![[Avatar]](/images/avatar/621d3f8d356fc58ce37b85f449136de9.jpg)
Membro desde: 24/01/2009 10:29:39
Mensagens: 41
Localização: Sao Paulo - Brazil
Offline
|
Oi Paternon. Foi isso mesmo que eu fiz. Mandei agrupar os campos extras e deu tudo certo. Estou estudando Hibernate e tambem fiz o mesmo exemplo usando "native SQL query" e ResultTransformer. Porem estou tendo um outro problema quando uso setResultTransform passando como parametro o Transformers.aliasToBean, ao inves de passar um newResultTransformer.
Assim funciona:
Assim nao funciona:
E gera a seguinte Exception:
De qualquer maneira irei criar um novo topico soh pra isso. Obrigado pela forca.
|
|
|
 |
|
|
|
|