У меня есть объект, называемый Lecture, и у него есть 2 поля, которые являются типами Учителя
class Lecture{
private Teacher teacher;
private Teacher subsTeacher;
}
Предположим, Учитель может преподавать много лекций. Таким образом, между Учителем существует одна-единственная связь → Лекция
Сейчас в классе Учителя у меня есть:
@OneToMany(mappedBy = "teacher")
@Cascade(value = {org.hibernate.annotations.CascadeType.DETACH,
org.hibernate.annotations.CascadeType.LOCK})
public Set<Lecture> getLectures() {
return lectures;
}
Тем не менее, это не вернет мне Лекции, на которые учитель подчиняется. Но они мне тоже нужны.
Как я могу это достичь?
Структура таблицы:
Таблица: Лекция
Столбцы: id, teacher_id, substeacher_id
Учитель таблицы:
Столбцы: id, name
Для этого вам нужно отфильтровать лекции в соответствии с учителем/суб-учителем и вручную установить в список лекций. В противном случае вам нужно сделать отдельное сопоставление. если вам нужно сохранить лекции с учителем, вы должны добавить отдельное сопоставление и использовать соответственно.
@OneToMany(mappedBy = "subsTeacher", cascade = {CascadeType.ALL})
private Set<Lecture> subLectures;