У меня есть два объекта для двух таблиц. У ученика есть отношения «один-много» с «MonthAttendance». student_id - это соединительная группа. Посмотрите на приведенный ниже код.Hibernate Двунаправленное сопоставление не работает
@Entity
@Table(name="student")
public class Student implements Serializable {
@Id
@Column(name="student_id")
@GeneratedValue(strategy= GenerationType.AUTO)
private String studentId;
/*
*More codes
*/
@OneToMany(mappedBy = "student", cascade = CascadeType.ALL)
private Set<MonthAttendance> monthAttendances;
/*
*mutators
*getter and setter methods
*/
}
@Entity
@Table(name="month_attendance")
public class MonthAttendance implements Serializable {
@Id
@Column(name="month_year_id")
@GeneratedValue(strategy= GenerationType.AUTO)
private String monthYearId;
/*
*More codes
*/
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "student_id")
private Student student;
/*
*mutators
*getter and setter methods
*/
}
У меня есть класс DAO, чтобы получить данные о студентах из базы данных. Я использовал ниже код для извлечения данных,
List<Student> studentList = session.createQuery("from Student").list();
List<Student> studentList = session.createQuery("from MonthAttendance").list();
Оба работают нормально. Но объект имеет рекурсивную структуру, такую как Student имеет MonthAttendance, MonthAttendance имеет Student, снова у Student есть MonthAttendance и продолжается. есть ли способ решить это? Мне просто нужно, чтобы у студента был MonthAttendance, у которого нет ученика, если я пытаюсь получить Student. Заранее спасибо.
Спасибо за ответ. Удалено «cascade = CascadeType.ALL» из студенческого объекта. Но по-прежнему сталкивается с той же проблемой –
Можете ли вы опубликовать свою трассировку стека за исключением? –
Я не получаю исключения. Ученик имеет набор MonthAttendance, MonthAttendance имеет объекты Student при извлечении данных. Так я получаю ниже исключение, при преобразовании моего результата в JSON, –