Как создать сопоставление гибернации «многие ко многим» для дополнительного свойства из таблицы соединений?

Мне нужно сопоставление «многие ко многим» в режиме гибернации, необходимо 3 соединения. Я пытался найти решение без промежуточного объекта, такого как LecturerCourse.

В моей базе данных есть отношение «многие ко многим» между лектором и таблицами курса. Курс может читаться несколькими лекторами, а один лектор может читать несколько курсов.

У меня заранее припасены курсы. Однако мне нужно назначить курсы преподавателю. Когда я назначаю курсы, я также сохраняю вместимость этого курса.

Диаграмма моей базы данных:

enter image description here

Я использую спящий режим и весну. Мне нужно сопоставление спящего режима, когда курс назначается любому лектору. Мне нужно добавить значения в поле емкости.

Карта моего лектора:

@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;
}

Есть идеи, как решить мою проблему?

19
задан John Giotta 25 January 2017 в 20:38
поделиться