Java hibernate: XML мапинг, связь многие ко многим, урок 5!

preview_player
Показать описание
Связь многие ко многим - это такая связь при которой участвуют две сущьности, экземпляр одной и другой может использовать два и более экземпляра другой сущьности.
Например:
1. Товар находится в нескольких категориях, и в одной категории находится несколько товаров
2. У пользователя есть несколько ролей, и у роли есть несколько пользователей
Рекомендации по теме
Комментарии
Автор

Ошибки которые выпадают в автора в консоле означают, что он пытается создать ключ на уже существующий, а также получается что нету ссылаемой ссылки на саму таблицу Role,

По правленый конфиг:
user.cfg.xml
<set name="roles" table="user_role">
<key column="user_id" />
<many-to-many column="role_id" class="Role" />
</set>

role.cfg.xml
<set name="users" table="user_role">
<key column="role_id" />
<many-to-many column="user_id" class="User" />
</set>

Профит!

Fexik
Автор

а почему в двух мэпинг файлах один ключ role_id ?

aset
Автор

для role
<set name="Users" table="user_role">
<key column="role_id" not-null="true"/>
<many-to-many column="user_id" class="User"/>
</set>
для user
<set name="Roles" table="user_role">
<key column="user_id" not-null="true"/>
<many-to-many column="role_id" class="Role"/>
</set>

martovskyy
Автор

Можно сразу преобразовать две таблицы и зависимость many-to-many в три таблицы и две зависимости one-to-many? То есть создать сразу user_role.java, user_role.cfg.xml?

BigAliFamily
Автор

Прошу прощения, я так понимаю, что нужно было еще в классе User создать новые поля - "user_role" и "role_id" ?

БабаЯга-чш
Автор

У меня конфиги сработали только после модификации соответствующих строк на следующие
role.cfg.xml:
<set name="users" table="user_role">
<key column="role_id"/>
<many-to-many column="user_id" class="User"/>
</set>

user.cfg.xml:
<set name="roles" table="user_role">
<key column="user_id"/>
<many-to-many column="role_id" class="Role"/>
</set>


У меня ощущение, что коварный автор специально допустил эту ошибку, чтобы мы отучались стесняться гуглить информацию самостоятельно

MrFijirald