[RESOLVIDO] Problema pra recuperar dado usando Hibernate

Consigo listar o Cliente e seus Animais, porém n consigo listar as Raças dos animais.

Segue as classes envolvidas do relacionamento:

Classe Cliente

@Entity
public class Cliente extends Pessoa {

@Column(name="forma_pagamento", length=20, nullable=false)
private String formaPagamento;

@OneToMany(mappedBy="cliente", cascade=CascadeType.PERSIST)
private List<Animal> animais;

public String getFormaPagamento() {
	return formaPagamento;
}

public void setFormaPagamento(String formaPagamento) {
	this.formaPagamento = formaPagamento;
}

public List<Animal> getAnimais() {
	return animais;
}

public void setAnimais(List<Animal> animais) {
	this.animais = animais;
    }

}

Classe Animal

@Entity
public class Animal {

@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="ID_ANIMAL")
@SequenceGenerator(name="ID_ANIMAL", sequenceName="SEQ_ID_ANIMAL", initialValue=1 ,allocationSize=1)
private int id;

@Column(length=25, nullable=false)
private String nome;

private int idade;

@Column(nullable=false)
private char sexo;

@ManyToOne
@JoinColumn(name="id_cliente")
private Cliente cliente;

@ManyToOne
@JoinColumn(name="raca")
private Raca raca;

public int getId() {
	return id;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public int getIdade() {
	return idade;
}

public void setIdade(int idade) {
	this.idade = idade;
}

public char getSexo() {
	return sexo;
}

public void setSexo(char sexo) {
	this.sexo = sexo;
}

public Cliente getCliente() {
	return cliente;
}

public void setCliente(Cliente cliente) {
	this.cliente = cliente;
}

public Raca getRaca() {
	return raca;
}

public void setRaca(Raca raca) {
	this.raca = raca;
    }
}

Classe Raça

@Entity
public class Raca {

@Id
private String nome;

@OneToMany(mappedBy="raca")
private List<Animal> animais;

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public List<Animal> getAnimais() {
	return animais;
}

public void setAnimais(List<Animal> animais) {
	this.animais = animais;
    }
}

O resultado:

Você está tentando retornar um objeto, tenta transforma-lo em string antes. Espero ter ajudado!

Eu não fiz o toString dessa classe, deve ser isso?

PS: A modelagem que fiz, está correta de acordo com os annotations que utilizei?

Com certeza pois esse tipo de erro ocorre quando você tenta retornar um objeto, geralmente de outra classe, então transforme em string e veja se apresenta o resultado.

1 curtida

Sobrescrevi o método toString e conseguir trazer os dados, obrigado!

Por nada, agora só mudar o título para [RESOLVIDO], abraço.

1 curtida