Estou tentando criar um listarAlunos usando java JPA Hibernate, mas no momento que eu escrevo algo no banco, ele simplesmente da erro… Alguem pode me ajudar?
Erro -
java.lang.StackOverflowError
java.lang.AbstractStringBuilder.append(Unknown Source)
java.lang.StringBuilder.append(Unknown Source)
java.sql.Time.toString(Unknown Source)
java.lang.String.valueOf(Unknown Source)
java.lang.StringBuilder.append(Unknown Source)
dominio.Turma.toString(Turma.java:122)
java.lang.String.valueOf(Unknown Source)
java.lang.StringBuilder.append(Unknown Source)
dominio.Aluno.toString(Aluno.java:186)
java.lang.String.valueOf(Unknown Source)
java.lang.StringBuilder.append(Unknown Source)
java.util.AbstractCollection.toString(Unknown Source)
Classe Aluno -
package dominio;
import java.sql.Date;
import java.util.Arrays;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name = “tab_alunos”)
public class Aluno {
@Id
private Integer matricula;
@Column(nullable = false)
private String nome;
private String telefone;
private String endereco;
private String historico;
private Integer idade;
private Integer faltas;
private Date dataInsc, dataSaida;
@ManyToOne
@JoinColumn(name = "id_turma_fk")
private Turma turma;
@OneToMany (mappedBy="aluno", fetch=FetchType.LAZY)
private List<Nota> notas;
public Integer getMatricula() {
return matricula;
}
public void setMatricula(Integer matricula) {
this.matricula = matricula;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getHistorico() {
return historico;
}
public void setHistorico(String historico) {
this.historico = historico;
}
public Integer getIdade() {
return idade;
}
public void setIdade(Integer idade) {
this.idade = idade;
}
public Integer getFaltas() {
return faltas;
}
public void setFaltas(Integer faltas) {
this.faltas = faltas;
}
public Date getDataInsc() {
return dataInsc;
}
public void setDataInsc(Date dataInsc) {
this.dataInsc = dataInsc;
}
public Date getDataSaida() {
return dataSaida;
}
public void setDataSaida(Date dataSaida) {
this.dataSaida = dataSaida;
}
public Turma getTurma() {
return turma;
}
public void setTurma(Turma turma) {
this.turma = turma;
}
public List<Nota> getNotas() {
return notas;
}
public void setNotas(List<Nota> notas) {
this.notas = notas;
}
@Override
public String toString() {
return "Aluno [matricula=" + matricula + ", nome=" + nome + ", telefone=" + telefone + ", endereco=" + endereco
+ ", historico=" + historico + ", idade=" + idade + ", faltas=" + faltas + ", dataInsc=" + dataInsc
+ ", dataSaida=" + dataSaida + ", turma=" + turma + ", notas=" + notas + "]";
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Aluno other = (Aluno) obj;
if (matricula == null) {
if (other.matricula != null)
return false;
} else if (!matricula.equals(other.matricula))
return false;
return true;
}
}
Classe Turma -
package dominio;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name = “tab_turmas”)
public class Turma {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_TURMA")
@SequenceGenerator(name = "ID_TURMA", sequenceName = "SEQ_TURMA", allocationSize = 1)
private String idTurma;
@Column(nullable = false)
private Time horaInicio, horaFim, horaIntervalo;
private Integer qtdHoraTotal;
@OneToMany(mappedBy = "turma", fetch = FetchType.LAZY)
private List<Aluno> alunos;
@ManyToMany(mappedBy = "turma")
private List<Disciplina> disciplinas;
@ManyToOne
@JoinColumn(name = "id_sala_fk")
private Sala sala;
@ManyToOne
@JoinColumn(name = "id_professor_fk")
private Professor professor;
public String getIdTurma() {
return idTurma;
}
public void setIdTurma(String idTurma) {
this.idTurma = idTurma;
}
public Time getHoraInicio() {
return horaInicio;
}
public void setHoraInicio(Time horaInicio) {
this.horaInicio = horaInicio;
}
public Time getHoraFim() {
return horaFim;
}
public void setHoraFim(Time horaFim) {
this.horaFim = horaFim;
}
public Time getHoraIntervalo() {
return horaIntervalo;
}
public void setHoraIntervalo(Time horaIntervalo) {
this.horaIntervalo = horaIntervalo;
}
public Integer getQtdHoraTotal() {
return qtdHoraTotal;
}
public void setQtdHoraTotal(Integer qtdHoraTotal) {
this.qtdHoraTotal = qtdHoraTotal;
}
public List<Aluno> getAlunos() {
return alunos;
}
public void setAlunos(List<Aluno> alunos) {
this.alunos = alunos;
}
public List<Disciplina> getDisciplinas() {
return disciplinas;
}
public void setDisciplinas(List<Disciplina> disciplinas) {
this.disciplinas = disciplinas;
}
public Sala getSala() {
return sala;
}
public void setSala(Sala sala) {
this.sala = sala;
}
public Professor getProfessor() {
return professor;
}
public void setProfessor(Professor professor) {
this.professor = professor;
}
@Override
public String toString() {
return "Turma [idTurma=" + idTurma + ", horaInicio=" + horaInicio + ", horaFim=" + horaFim + ", horaIntervalo="
+ horaIntervalo + ", qtdHoraTotal=" + qtdHoraTotal + ", alunos)=" + alunos + ", disciplinas="
+ disciplinas + ", sala=" + sala + ", professor=" + professor + "]";
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Turma other = (Turma) obj;
if (idTurma == null) {
if (other.idTurma != null)
return false;
} else if (!idTurma.equals(other.idTurma))
return false;
return true;
}
}