如何使用其他列处理多对多链接表

时间:2010-05-10 12:55:00

标签: java orm jpa eclipselink

假设以下示例性DB-Design:

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


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


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

我使用xml将此关系映射到eclipse-link。 用户:

<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 个答案:

答案 0 :(得分:1)

虽然它不是M-N。它是2个1-N的中间类(包含登录名和密码)。