Consulta hibernate HQL

estou tentando passar uma consulta sql para HQL segue o sql :

SELECT  
	
        cidades.`id` AS cidades_id,     
        cidades.`nome` AS cidades_nome, 
        recurso.valorbeneficio as valorben,
        cadunico.`qtd` AS cadunico_qtd,
	populacao.`urbana` AS populacao_urbana,
	populacao.`rural` AS populacao_rural,    	
	bolsafamilia.`datapesquisa` AS bolsafamilia_datapesquisa,        
     	cadunico.`datapesquisa` AS cadunico_datapesquisa,    
	populacao.`datapesquisa` AS populacao_datapesquisa
         
FROM
     `beneficiados` beneficiados
	left outer JOIN `recurso` recurso ON beneficiados.`recurso_id` = recurso.`id`
     	right outer JOIN `cidades` cidades ON beneficiados.`cidade_id` = cidades.`id`
        left outer JOIN `bolsafamilia` bolsafamilia ON beneficiados.`cidade_id` = bolsafamilia.`cidades_id`      
        left outer JOIN `cadunico` cadunico ON beneficiados.`cidade_id` = cadunico.`cidades_id`
     	left outer JOIN `populacao` populacao ON beneficiados.`cidade_id` = populacao.`cidades_id`
      
where cidades.estado_id = 1

GROUP BY 
cidades.nome

preciso de ajuda como montar o HQL

Bem, pq ao inves de usar HQL diretamente, o q daria mais trabalho vc naum usa SQLQuery ??? Assim a mudança seria quase zero.

SQLQuery query = session.createSQLQuery("aqui seu select");
query.addEntity(Tabelaprincipaldoseuselect.class);
query.setParameter(1, parametros);

// lembrando q para setar os parametros no seu select vc usa :parametro ao inves de ?
//ex: select * from tabela where campo = :parametro

t+ e boa sorte.

tenclar, não da para simplesmente de dizer como fazer essa query, depende dos mapeamentos que você está usando.
Dê uma lida aqui:

http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity

E depois escreva sua consulta, como aqui:
http://docs.jboss.org/hibernate/core/3.5/reference/en/html/queryhql.html

uma cituação que tentei aplicar foi :

select b.cidade.nome as Cidade,
bt.qtd as bf, 
b.recurso.valorrecurso,
(b.recurso.valorrecurso / (select sum(bf.qtd) from BolsaFamilia bf where cid.id = b.cidade.id))as renpecapta,
b.cidade.meta as meta  
from Beneficiado b, BolsaFamilia bt , Cidade cid
left outer join b.recurso
right outer join b.cidade
where bt.cidade = b.cidade
and b.cidade.estado.id = 1
 
group by b.cidade

no banco de dados um calculo no select funciona , no hql por acaso terei de fazer fora e trazer por parametro ?

Nunca tentei fazer uma operação em um select assim, mas eu sei que tem no JPA uma forma de adicionar atributos com valores calculados na sua entidade, assim:

@Formula("(select min(o.creation_date) from Orders o where o.customer_id = id)")
private Date firstOrderDate;

Provavelmente o Hibernate tem alguma coisa similar.