Hibernate não mostra chave PK em consultas "CreateQuery"[RESOLVIDO]

Olá Pessoal,
Migrei recentimente para o hibernate 4.2.3, ao realizar o consulta a baixo, o hibernate me retorna uma coleção de objetos do tipo Usuario que tem os atributos (id, nome, colaborador). Porém não consigo ter acesso ao ID de cada objeto. Ou seja

ID: 1
Nome: maria
Colaborador: maria fernanda da silva

Tentei obter o ID “1” do objeto mas não estou conseguindo. Os demais dados consigo acessar normal.

Testei o mesmo método na versão 3.6 do hibernate e funcionou normal. Lí que CRITERIA ignora os IDs mas não encontrei nada para “CreateQuery”. Como posso resolver essa situação

	/* Realiza consultas em uma entidade*/
	public List getConsulta(){
		
		//utilizado com a classe Manager
		Session session = sessionManager.getSessionCurrent();
		
		//Mapeia a tabela do banco recional para objeto
		Query select = session.createQuery("From Usuario" );		
		
		//Transforma todos os dados encontrados em um lista de objetos
		List list = select.list();

		return list;				
	}
	

att.

Não existe nenhuma razão para que você esteja tendo tal problema.
Eu nunca tive nenhuma dificuldade como acesso à atributos de objetos obtidos a partir de hql ou Criteria.
Pode postar o método em que você tenta extrair estes atributos?

Olá parceiro,

Foi que pensei mas realmente está acorrendo! fiz um teste utilizando o hibernate 3.6 e funcionou normal. Então resolvi postar para saber se isso foi alguma modificação do Framework, considerando que estou utilizando a ultima versão 4.2.3. Você também está utilizando a ultima versão?

A classe está mapeada corretamente, observei pelo log do console (eclipse) a consulta gerada pelo hibernate, na consulta ele lista todos os campos (select id, usuNome, colaborador From Usuario) da tabela incluindo o ID, porém ao tentar acessar a informação dentro do atribuição é retornado nul.

Lí na documentação do hibernate o tipo de Consulta CRITERIA ignora os ID, mas lá não fala nada sobre HQL.

package br.com.principal;

import static javax.persistence.GenerationType.IDENTITY;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;


@Entity
@Table(name = "usuario")
public class Usuario {
	private Integer idUsu;
	private String usuNome;
	private Colaborador colaborador;
	
	
	
	@Id
	@GeneratedValue(strategy = IDENTITY)
	public Integer getIdUsu() {
		return idUsu;
	}
	public void setIdUsu(Integer idUsu) {
		idUsu = idUsu;
	}
	
	 @Column 
	public String getUsuNome() {
		return usuNome;
	}	
	public void setUsuNome(String usuNome) {
		this.usuNome = usuNome;
	}
	
	@ManyToOne
	@JoinColumn(name="Usu_Col_codigo", insertable = true, updatable = true, nullable = false)
	public Colaborador getColaborador() {
		return colaborador;
	}
	public void setColaborador(Colaborador colaborador) {
		this.colaborador = colaborador;
	}	


}

Olá Pessoal,
Encontrei a falha, tenho que agradecer ao “drsmachado” que poderia pedir qualquer outra classe mas pediu logo a classe de acesso (V.O, Persistência, Modelo, JavaBens) como queiram chamar.

O ID não era mostrado pois esqueci de por a cláusula this

Jeito ERRADO


	public void setIdUsu(Integer idUsu) {
		idUsu = idUsu;
	}

OBS: isso corre porque a JVM entende a variável do método recebe ele mesmo, ou seja o ATRIBUTO da classe idUsu não recebe nenhuma informação

Jeito CERTO


	public void setIdUsu(Integer idUsu) {
		this.idUsu = idUsu;
	}

OBS: Neste caso a JVM consegue diferenciar entre o ATRIBUTO da classe idUsu e a variável passada pelo parâmetro do método

Bem, deixo a dica para o pessoal que até então não sabe a importância do .this rsrsrs