Consegui resolver

simples assim:

Query query = sessionFactory.openSession().createQuery("Select count(a.equCodigo) as qtd,equDepartamentoCodigo.depNome as nome" + " FROM Equipamento a " + "group by a.equDepartamentoCodigo.depNome") .setResultTransformer(new AliasToBeanResultTransformer(Consulta.class));

        return query.list();



única coisa q eu apanhei é q no bean Consulta o atributo qtd estava como Integer e coloquei Number
ai ficou legal


valeu feras

julio


Em 29/03/2012 08:33, Paulo Fernando Stoppa escreveu:
O criteria só da pra usar quando o Bean é uma entidade do hibernate.
No caso a classe Consulta é somente um Bean pra trazer os resultados.

Você tem os getter's e setters das propriedades?

Outra coisa, faz também um addScallar, tipo assim:

/Query query = sessionFactory.openSession().createQuery("Select count(a.equCodigo) as qtd,"/
/                      + " FROM Equipamento a"
+ " group by a.equCodigo ").addScalar("//qtd//", Hibernate.INTEGER) .setResultTransformer(new AliasToBeanResultTransformer(Consulta.class));/


Paulo Fernando Stoppa
[email protected] <mailto:[email protected]>



Em 29 de março de 2012 07:45, Re JMD <[email protected] <mailto:[email protected]>> escreveu:

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

    Em 28 de março de 2012 11:49, Julio Cesar <[email protected]
    <mailto:[email protected]>> 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
        
<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
        [email protected] <mailto:[email protected]>
        Para sair da lista, envie um email em branco para
        [email protected]
        <mailto:[email protected]>
        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
    [email protected] <mailto:[email protected]>
    Para sair da lista, envie um email em branco para
    [email protected]
    <mailto:[email protected]>
    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 [email protected]
Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev


--
Obrigado
Julio

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

Responder a