Org.hibernate.QueryException: query specified join fetching, but the owner of the fetched assoc

Olá pessoal,

Tenho dois selects em HQL, para consulta no banco, a unica diferença entre um e outro é que no primeiro faço SELECT COUNT(*) e no segundo SELECT entidade.

Nessa consulta o hibernate me retorna:
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list

[code]public Integer count(Integer unidade, Integer prontuario) {		
	Map<String, Integer> paramsInt = new HashMap<String, Integer>();		
		paramsInt.put("unidade", unidade);
		paramsInt.put("idPasta", prontuario);
	return ((Long) this.session.createQuery("SELECT COUNT(*) FROM Pessoa as pessoa
	LEFT JOIN FETCH pessoa.alunoPastaIndividualList AS pasta WHERE pasta.escola.id = :unidade AND pasta.idPasta = :idPasta")
			.setProperties(paramsInt).iterate().next())
			.intValue();
}[/code]

Já nesta a query é executa normalmente (a unica coisa diferente é o “SELECT COUNT(*)” que nesse caso não tem):
org.hibernate.QueryException: query specified join fetching, but the owner of the fetched association was not present in the select list

public Collection search(Integer unidade, Integer prontuario) { Map<String, Integer> paramsInt = new HashMap<String, Integer>(); paramsInt.put("unidade", unidade); paramsInt.put("idPasta", prontuario); return this.session.createQuery("FROM Pessoa as pessoa LEFT JOIN FETCH pessoa.alunoPastaIndividualList AS pasta WHERE pasta.escola.id = :unidade AND pasta.idPasta = :idPasta") .setProperties(paramsInt).list(); }

Alguém sabe o que pode ser?

Sim, se não me engano você não pode utilizar o * no JPQL, tem que usar seu alias, portanto troque de: "SELECT COUNT(*) FROM Pessoa as pessoa ..." para "SELECT COUNT(pessoa) FROM Pessoa as pessoa ..."E veja se funciona.

Olá, obrigado pela resposta mas já tentei dessa forma também e não deu certo.
Estou procurando agora sobre esses plugins para a IDE que permitem testar a query, ideal seria se eu pudesse converter um sql em hql.

Utilizando esse pattern você pode testar suas JPQLs sem realizar deploy da aplicação: Como testar sua JPQL / HQL sem realizar Deploy.

Fera d+, obrigado pela ajuda.
Abraços.