Cara já que você já tem um Bean vc pode utilizar Criteria.

Em 28 de março de 2012 11:49, Julio Cesar <jcasilv...@gmail.com> escreveu:

> Bom dia pessoal
>
>
> Estou utilizando flex + hibernate, apanhei muito para deixar rodando e
> funcionando certinho, mas agora me surgiu um problema que não estou
> conseguindo resolver(por parte)
>
> Estou estava utilizando a createQuery da seguinte forma:
>
> Query query = sessionFactory.getCurrentSession().createQuery("Select
> count(equCodigo) as qtd,equDepartamentoCodigo.depUnidadeCodigo.uniNome "
>                                                     + " FROM Equipamento "
>                                                     + " group by
> equDepartamentoCodigo.depUnidadeCodigo.uniNome ");
>         return  query.list();
>
> porém ele vem sem as colunas, já li em alguns lugares que é pq ele nao tem
> um BEAN associado com esses atributos
> *vem desse jeito:
> {2, Adm. Hospitalar}
> {2, Plano}
>
> p/ falar vdd consigo pegar os dados no flex, onde no datafield do datagrid
> eu coloco 0 ou 1**
> *
> ai eu fiz um novo bean (Consulta) só com os atributos *nome* e *qtd*
> e fiz igual o stefan falou no topico:
>
> https://groups.google.com/group/flexdev/browse_thread/thread/8ba2b41d4f4809ea/d33a4893d4d1caba?hl=pt&lnk=gst&q=setResultTransformer#d33a4893d4d1caba
>
> então ficou assim:
> *Query query = sessionFactory.openSession().createQuery("Select
> count(a.equCodigo) as qtd"
>                                                     + " FROM Equipamento a"
>                                                     + " group by
> a.equCodigo ")
>                                     .setResultTransformer(new
> AliasToBeanResultTransformer(Consulta.class));*
>
> *        return query.list(); *
>
> *porém da erro:*
> Exception in thread "main" org.hibernate.PropertyAccessException:
> IllegalArgumentException occurred while calling setter of
> br.com.equipamentos.model.Consulta.qtd
>     at
> org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:128)
>     at
> org.hibernate.transform.AliasToBeanResultTransformer.transformTuple(AliasToBeanResultTransformer.java:91)
>     at
> org.hibernate.hql.HolderInstantiator.instantiate(HolderInstantiator.java:96)
>     at
> org.hibernate.loader.hql.QueryLoader.getResultList(QueryLoader.java:423)
>     at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
>     at org.hibernate.loader.Loader.list(Loader.java:2271)
>     at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
>     at
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
>     at
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
>     at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
>     at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
>     at
> br.com.equipamentos.dao.GenericDaoImp.listaQtdEquipamentoDepartamento(GenericDaoImp.java:255)
>     at
> br.com.equipamentos.service.impl.EquipamentoServiceImpl.listaQtdEquipamentoDepartamento(EquipamentoServiceImpl.java:44)
>     at Main.main(Main.java:39)
> Caused by: java.lang.IllegalArgumentException: argument type mismatch
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:601)
>     at
> org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:66)
>     ... 13 more
> Java Result: 1
>
>
> onde esta errado ????
>
>
>
> -- Obrigado Julio
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-unsubscr...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a