Hibernate Отношение многие ко многим - PullRequest
0 голосов
/ 01 мая 2011

У меня проблема с Hibernate отношения многих ко многим.В проекте есть два постоянных класса, которые называются Student и Course.Я настраиваю оба класса со многими ко многим отношениям.Поэтому hibernate создает третью таблицу StudentCourse, которую я определил в таблице student.hbm.xml между тегами.Когда я сохраняю студента, он работает нормально. Другими словами, он хранит информацию об ученике в таблице ученика, информацию об ученике и идентификатор курса в таблице ученика и информацию о курсе в таблице курса.Однако, когда я пытаюсь сохранить информацию о курсе, он обновляет только таблицу курсов, а не таблицу StudentCourse.Поэтому я попытался добавить их вручную (написав sql-запрос самостоятельно.) Как вы знаете, сценарий «вставка в значения StudentCourse (studentId, courseId) (?,?) Не работает должным образом в Hibernate. Я пытался написать сценарий на Hql, но, Я не смог этого сделать. Что мне делать? Я действительно запутался.

Обновление:

Я использую файл отображения. Я настраиваю файл student.hbm.xml следующим образом;

<set name="courses" table="StudentCourse" cascade="all">
        <key column="studentId" />
        <many-to-many class="Course" column="courseId" /> 

</set>

Как настроить этот файл?

Ответы [ 2 ]

0 голосов
/ 13 марта 2014

Хорошо работает, когда вы храните ученика, потому что ученик является владельцем отношений Только изменения в владельце отношений будут влиять на содержимое таблицы объединения.

0 голосов
/ 01 мая 2011

Если вы сопоставили его с аннотацией, вам нужно добавить InverseJoinTable

, это выглядит примерно так:

@ManyToMany
@JoinTable(
name = “studentid”,
joinColumns = { @JoinColumn(name = “studentid”) },
inverseJoinColumns = { @JoinColumn(name = “courseid”) }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...