Ajuda com hibernate - count

atualmente tenhu esse SQL que uso no firebird pra fazer uma consulta de promotor e qtde de visitas

select promotor.promotor, promotor.nome as nome, count(visita.visita) as qtdvisita from visita inner join promotor on promotor.promotor = visita.promotor where visita.datachegada is not null and visita.datasaida is not null and visita.situacao = 1 and cast(visita.datachegada as date) = date group by promotor.promotor, promotor.nome

quero transformar para hql pois migrei tudo pra hibernate, so q estou com uma duvida, pois o hibernate retorna das consultas o objeto ou um list de objetos, levando em consideraçao que esse count do sql acima nao é um atributo do objeto que quero retornar … como posso fazer isso?

Você pode fazer o seguinte, eu não costumo utilizar o HQL eu utilizo o criteria, mas como você esta utilizando o mesmo, eu no seu lugar faria o seguinte:

Criaria o seguinte HQL:

     Query q = session.createQuery("From Visita where promoto = :promotor");
     q.setInteger("promotor", codigo);
     return q.list();

Lembrando que vc tem que ter todas os objetos mapeados.

Retornaria a lista de objetos, ai na camada de negócio, utilizava o metódo size() para saber quantos registros eu tenho. Não sendo necessário a utilização do count. Mas te aconselho a dar uma olhada no criteria é bem legal.

Bem essa é minha opinião, estou sempre aprendendo aqui no GUJ.

Abraços.