Как обрабатывать таблицы ссылок «многие ко многим» с дополнительными столбцами - PullRequest
1 голос
/ 10 мая 2010

Предположим следующий примерный DB-Design:

USERS
-----------------
ID
NAME


ROLES
-----------------
ID
NAME


USERS_ROLES
-----------------
FK_USER_ID
FK_ROLE_ID
LOGIN
PASSWD

Я отображаю это отношение с помощью eclipse-link, используя xml. Пользователи:

<many-to-many name="roles" mapped-by="users">
  <join-table name="USERS_ROLES">
    <join-column name="USER_ID" />
    <inverse-join-column name="ROLE_ID" />
  </join-table>
</many-to-many>

Ради полноты, соответствующее отображение ролей:

<many-to-many name="users" mapped-by="roles">
  <join-table name="USERS_ROLES">
    <join-column name="FK_ROLE_ID" />
    <inverse-join-column name="FK_USER_ID" />
  </join-table>
</many-to-many>

Теперь я мог бы также создать сопоставление для таблицы ссылок, но что мне нужно сделать, чтобы получить доступ к свойствам связанной таблицы (сопоставленной с объектом / классом java)? Мне это нужно, если пользователи будут входить в систему, выбирать интересующую их роль и вводить соответствующий пароль. Конечно, при текущей настройке я могу получить все роли, которым назначен пользователь, и наоборот, но я не могу сравнить данные входа в систему или любые другие свойства, соответствующие отношению пользователя и роли. Вкратце: я понятия не имею, как получить доступ к свойствам связанной таблицы или как мне это отобразить в mapping-xml.

Спасибо заранее!

1 Ответ

1 голос
/ 10 мая 2010

Хотя это не М-Н. Это 2 1-N с промежуточным классом (содержащие логин и пароль).

...