Мне нужно сопоставление «многие ко многим» в режиме гибернации, необходимо 3 соединения. Я пытался найти решение без промежуточного объекта, такого как LecturerCourse
.
В моей базе данных есть отношение «многие ко многим» между лектором и таблицами курса. Курс может читаться несколькими лекторами, а один лектор может читать несколько курсов.
У меня заранее припасены курсы. Однако мне нужно назначить курсы преподавателю. Когда я назначаю курсы, я также сохраняю вместимость этого курса.
Диаграмма моей базы данных:
Я использую спящий режим и весну. Мне нужно сопоставление спящего режима, когда курс назначается любому лектору. Мне нужно добавить значения в поле емкости.
Карта моего лектора:
@Entity
@Table(name="LECTURER")
public class Lecturer {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="LECTURER_ID_SEQ")
@SequenceGenerator(name="LECTURER_ID_SEQ", sequenceName="LECTURER_ID_SEQ")
private Long Id;
@Column(name="NAME")
private String name;
@Column(name="SURNAME")
private String surname;
@Column(name="EMAIL")
private String email;
@Column(name="USERNAME")
private String username;
@Column(name="PASSWORD")
private String Password;
@ManyToMany
@JoinTable(
name="LECTURER_COURSE",
joinColumns=@JoinColumn(name="LECTURER_ID"),
inverseJoinColumns=@JoinColumn(name="COURSE_ID")
)
private List<Course> courses;
//getters - setters
}
Карта моего курса:
@Entity
@Table(name="COURSE")
public class Course {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="COURSE_ID_SEQ")
@SequenceGenerator(name="COURSE_ID_SEQ", sequenceName="COURSE_ID_SEQ")
private Long id;
@Column(name="NAME")
private String name;
@Column(name="CODE")
private String code;
}
Есть идеи, как решить мою проблему?