Hibernate - Projections  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
thiagoaos
JavaBaby

Membro desde: 08/04/2005 17:20:52
Mensagens: 78
Offline

Bom eu tenho a query abaixo que agrupa a quantidade de cursos por turno. Porém eu não encontrei uma maneira limpa de tratar o retorno dela.
Peguei uma lista e iterei, porém não consigo fazer o cast para turno nem para curso, como faço isso?



Gostaria de saber também, como eu faço para limitar a quantidade de campos que eu quero que a query traga, exemplo, curso tem um monte de campos, mais eu só quero id e nome, como eu faço para limitar? tem que adicionar propertys?

Grato,
Thiago
JBosseur
Entusiasta Java

Membro desde: 14/07/2005 12:30:54
Mensagens: 19
Offline

Tem certeza que isso ta retornando alguma coisa????

teu código nao temque ficar assim:



aí dessa forma vc vai receber um objeto que tem o count
agrupado por nome e id

Aí se quer popular isso de uma vez só
inclui

.setResultTransformer(new AliasToBeanResultTransformer(SuaClass.class))





boa sorte

[]´s

First Law of Distributed Object Design: Don?t distribute your objects! (Martin Fowler)
[MSN]
thiagoaos
JavaBaby

Membro desde: 08/04/2005 17:20:52
Mensagens: 78
Offline

Ta retornando sim, e retornando um resultado valido, ou seja, coerente com minha query do banco, retorna o nome dos turnos (matutino,vespertino e noturno) e a quantidade de cursos nele.

Eu não preciso de 2 groupProperty, pois eu to agrupando pela chave estrangeira turno.id, e quero pegar o nome do turno e a quantidade.



Na verdade assim fica melhor, fica uma sequencia igual a do sql. o group por ultimo.

Queria saber se tinha outra maneira de retornar isso, tipo utilizando um Map, e pegando pelo alias que eu defini nas propriedades.

É preciso criar um class mesmo só para isso?
Axel-Foley
Thread.start()

Membro desde: 03/11/2004 23:16:58
Mensagens: 48
Offline

é só usar ResultTransformer, da uma olhada ai
JBosseur
Entusiasta Java

Membro desde: 14/07/2005 12:30:54
Mensagens: 19
Offline

Aí que ta se usar o ResultTransformer tem que criar uma classe
mas nessa classe as propriedades tem que ter o mesmo nome
que as alias que vc usou....
fica muito tranquilo....

[]'s

First Law of Distributed Object Design: Don?t distribute your objects! (Martin Fowler)
[MSN]
kaoe
JavaChild
[Avatar]

Membro desde: 02/02/2005 20:19:45
Mensagens: 125
Offline

Não..., ele ta falando do ResultTransform ALIAS_TO_MAP (ou algo do tipo) ai ele retorna o resultado na forma de Map e não de Object[]... da uma lida na API que vc vai entender...
[MSN] [ICQ]
Axel-Foley
Thread.start()

Membro desde: 03/11/2004 23:16:58
Mensagens: 48
Offline

isso.. tem um ResultTransformer que retorna um mapa exatamente da forma que voce quer
braudes
HelloWorld
[Avatar]

Membro desde: 22/10/2007 12:49:43
Mensagens: 13
Localização: Goiânia - Goiás
Offline

Gostaria de saber se tem como utilizar subcriteria juntamente com Projections para que a consulta retorne somente determinados atributos da classe preenchidos. Ex.:



Esta dando a seguinte exceção:

org.hibernate.QueryException: could not resolve property: nome of: br.com.evoluti.sig.entidade.geral.Empresa

Empresa tem id, versao, pessoaJuridica e outros atributos. PessoaJuridica tem id, versao, nome e etc. Gostaria de trazer todas as empresas (filtradas pelo nome - isso eh um segundo passo) com os atributos id, versao e pessoaJuridica.nome preenchidos para melhorar performance.
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team