[Resolvido] Hibernate + List trazendo apenas o primeiro registro

1 resposta
rodrigo_flausino

Ae pessoal, blz! Eu fiz uma classe de cliente e uma de autorizado para um sistema desktop de videolocadora, e to com problemas ao trazer os autorizados. Ele gera uma lista com o número certo de autorizados, mas só tá trazendo o primeiro, jogando o mesmo valor em todos os objetos da lista. Segue meus mapeamentos:

Mapeamento na classe cliente

@OneToMany(fetch = FetchType.EAGER, mappedBy = "codCliente")
@Cascade(CascadeType.ALL)
private List<Autorizados> autorizados;

public List<Autorizados> getAutorizados() {
	return autorizados;
}

public void setAutorizados(List<Autorizados> autorizados) {
	this.autorizados = autorizados;
}

Mapeamento na classe autorizado:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JoinColumn(name = "codCliente")
private Integer codCliente;

@Column(length = 100)
private String nome;

@Column(length = 20)
private String rg;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "codCliente", insertable = false, updatable = false)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Clientes c;

Métodos que uso pra trazer os autorizados (usando TableModel):

AutorizadosTableModel modeloAutorizados = new AutorizadosTableModel(
				(List) cliente.getAutorizados()); 
		tabelaAutorizados.setModel(modeloAutorizados);

Alguém sabe porquê está dando esse erro?

1 Resposta

rodrigo_flausino

Resolvi o meu problema. Na verdade a classe autorizado também tem de ter um campo só pro código. Tentei fazer sem (já que aí teria apenas um campo de Nome, RG e a chave estrangeira), mas vi que ficava duplicando os registros, inclusive em simples consultas onde eu pegava todos os valores.

Desculpem a minha noobice :frowning:

Criado 30 de outubro de 2010
Ultima resposta 30 de out. de 2010
Respostas 1
Participantes 1