Краткий ответ:
Вы должны разделить ассоциацию «многие ко многим» на ассоциацию «два к одному» и использовать аннотацию @Embedded для определения составного ключа для промежуточной сущности. Подробную информацию смотрите по ссылке ниже
https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/
Длинный ответ:
На самом деле, когда вы используете аннотацию @ManyToMany для установления sh связи многих со многими в спящем режиме, создается еще одна таблица для установки sh Ассоциация ManyToMany за сценой, эта таблица определена с помощью аннотации @JoinTable в вашем коде, запрос к этой таблице полностью управляется hibernate для достижения связи между многими, и у вас нет сущности, которая сопоставлена с этой таблицей. Это нормально, если вам не нужен дополнительный столбец в промежуточной таблице (здесь STUDENT_COURSE) или если вы хотите выполнить какой-то конкретный c запрос к этой таблице таким образом, чтобы вы вели себя с другой сущностью и не хотели получить доступ к идентификатору вашего курса и ученический стол в CourseStudent. потому что, когда hibernate создает промежуточную таблицу за сценой, в вашей программе нет сущности, которая сопоставляется с этой таблицей, и поэтому у вас не может быть другого столбца для этой таблицы, и вы не можете вести себя с этой таблицей как с сущностью в вашей программе. , если вам нужен дополнительный столбец, вы можете разделить свою ассоциацию @ManyToMany на две ассоциации @ManyToOne. Здесь у вас должна быть другая сущность с именем StudentCourse, у которой есть две ассоциации @ManyToOne, одна с сущностью Student, а другая с сущностью Course. Однако, когда вы определяете ассоциацию «многие ко многим» таким образом, вы должны учитывать интеграцию данных, например, комбинация student_id и course_id в вашей таблице student_course является уникальной и фактически она должна быть составным ключом в вашей таблице student_course. К счастью, есть некоторые аннотации в hibernate и jpa, которые предоставляют эту возможность. Написание всего кода для этой ситуации в этом ответе является излишним, поскольку в приведенной ниже ссылке уже есть хороший пример.
https://vladmihalcea.com/the-best-way-to-map-a-many-to-many-association-with-extra-columns-when-using-jpa-and-hibernate/