[RESOLVIDO] Problema pra recuperar dado usando Hibernate

5 respostas
jpajavahibernate
Renan_Narciso

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:

5 Respostas

wallacecampanha

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

Renan_Narciso

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?

wallacecampanha

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.

Renan_Narciso

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

wallacecampanha

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

Criado 9 de abril de 2017
Ultima resposta 17 de abr. de 2017
Respostas 5
Participantes 2