Hibernate duplicando objetos na consulta

Pessoal estou fazendo uma busca trazendo todos os registros de uma tabela. Eis a busca:

		Criteria crit = HibernateUtil.getCurrentSession().createCriteria(Pavimento.class);
		return crit.list();

          ...


public class Quarto {
	@Id @GeneratedValue (strategy=GenerationType.AUTO)
	@Column (name="ID_QUARTO")
	private Long idQuarto;
	@ManyToOne
	@JoinColumn (name="ID_PAVIMENTO")
	private Pavimento pavimento;
	@Column (name="CD_NUMERO")
	private Long cdNumero;
	@Column (name="ID_TIPO")
	private Long idTipo;
	@Column (name="DESCRICAO")
	private String descricao;
	@OneToMany (fetch=FetchType.LAZY, targetEntity=Reserva.class)
	@JoinColumn (name="ID_QUARTO")
	private List<Reserva> reservas;
	@OneToOne
	@JoinColumn (name="ID_STATUS")
	private Status status;
	@OneToOne
	@JoinColumn (name="ID_QUARTO")
	private InfoQuarto info;
}



public class Pavimento {
	@Id @GeneratedValue(strategy=GenerationType.AUTO)
	@Column (name="ID_PAVIMENTO")
	private Long idPavimento;
	@Column (name="DESCRICAO")
	private String descricao;
	@OneToMany (fetch=FetchType.EAGER,targetEntity=Quarto.class)
	@JoinColumn (name="ID_PAVIMENTO")
	private List<Quarto> quartos;
}

acho que não estou utilizando corretamente as tags para fazer o relacionamento entre as duas tabelas. Alguém tem alguma dica?

Ah, tinha esquecido, estou no hibernate 3.2.3 e Annotations 3.3

Adicione um mappedBy=“quartos” em seu @ManyToOne.

Vejamos se isso ajuda.

[]'s

O @ManyToOne não aceita essa propriedade mappedBy. Alguém, tem algum exemplo parecido de como fazer esse mapeamento?

Editado
Consegui resolver, alterei o fetchtype de eager para lazy e trouxe os registros corretamente.

     @OneToMany (fetch=FetchType.LAZY,targetEntity=Quarto.class)  
     @JoinColumn (name="ID_PAVIMENTO")  
     private List<Quarto> quartos;

Tem razão, falei besteira :oops:

Aqui vai um exemplo funcional meu.

Classe MasterState, possui N MasterCity:

@OneToMany(mappedBy = "state", fetch=FetchType.LAZY)
	private List<MasterCity> cities = null;

Classe City, sempre pertence a um MasterState:

@ManyToOne
	@JoinColumns( {
			@JoinColumn(name = "COD_COUNTRY", referencedColumnName = "COD_COUNTRY", updatable = true, insertable = true),
			@JoinColumn(name = "COD_ADM1", referencedColumnName = "COD_ADM", updatable = true, insertable = true) })
	private MasterState state;

Comparando com seu codigo eu diria:

  1. Retira o “targetEntity”, ele é desnecessário.
  2. Coloque o mappedBy no @OneToMany
  3. Coloque todas as opções do @JoinColumn.

[]'s