Consulta hibernate hql usando fetch ou não

Pessoas tenho dois resultados de consulta que não estou entendendo.

Quando consulto usando essa hql :

		String hql = "from Empregado e " +
				"left join fetch e.area " +
				"where e.icAtivo = 1 and e.area.areaVinculada.nuGerencia = 259 " +
				"order by e.noEmpregado asc";

Ele me retorna uma lista de array de objetos tipo Empregado. Com essa query ele não deixa o carregamento preguisoço.

Se eu tirar o “fetch”, ele retorna uma lista de array de Objects. E isso me atrapalha porque tenho que fazer o cast pra poder acessar um atributo de empregado.

Quero manter o carregamento lazy e acessar um atributo do objeto empregado normalmente sem fazer cast.

obrigado.

tenta tirar o fetch E o left (que não é necessário)

fiz o que o colegal orientou mas nada mudou.

quando eu tiro fetch:

lista vem com objetos tipo Object:
[[Ljava.lang.Object;@b2604e, [Ljava.lang.Object;@d0c62b, [Ljava.lang.Object;@824d2a…]]

quando eu cologo fetch:

lista vem com objetos do tipo da classe mapeada:

[sigpr.modelo.bean.Empregado@256, sigpr.modelo.bean.Empregado@ca, sigpr.modelo.bean.Empregado@cb…]

O que vcs sugerem ?

[quote=efcjunior]fiz o que o colegal orientou mas nada mudou.

quando eu tiro fetch:

lista vem com objetos tipo Object:
[[Ljava.lang.Object;@b2604e, [Ljava.lang.Object;@d0c62b, [Ljava.lang.Object;@824d2a…]]

quando eu cologo fetch:

lista vem com objetos do tipo da classe mapeada:

[sigpr.modelo.bean.Empregado@256, sigpr.modelo.bean.Empregado@ca, sigpr.modelo.bean.Empregado@cb…]

O que vcs sugerem ?[/quote]Mas vc tirou o left?

tirei amigão…Olha como está meu método:

	@SuppressWarnings("unchecked")
	@Override
	public List<Empregado> listar() {

		String hql = "from Empregado e " +
				"join e.area " +
				"where e.icAtivo = 1 and e.area.areaVinculada.nuGerencia = 259 " +
				"order by e.noEmpregado asc";
		Query consulta = this.getSession().createQuery(hql);

		return consulta.list();

	}

Do jeito que está ele retorna uma lista de objects. Nâo consigo entender as situações:

1- Já que ele retorna uma lista de object porque não dá erro de cast devido meu método ter um tipo de retorno: List

2- Já que uma variável tipo List consegue referenciar essa lista porque quando vou iterar com for(Empregado emp: listaEmpregado) me dá um erro de cast.

Retirei. Meu método ficou assiM:

	@SuppressWarnings("unchecked")
	@Override
	public List<Empregado> listar() {

		String hql = "from Empregado e " +
				"join e.area " +
				"where e.icAtivo = 1 and e.area.areaVinculada.nuGerencia = 259 " +
				"order by e.noEmpregado asc";
		Query consulta = this.getSession().createQuery(hql);

		return consulta.list();

	}