需要采用生成 中间表来维护关系。(复合主键,各取对方主键)
[color=green]hibernate多对多关联映射(单向User---->Role)[/color]
具体映射方式:
<[color=red]set[/color] name="[color=red]roles[/color]" table="t_user_role"> //中间表名 roles为对另一方的引用
<[color=red]key [/color]column="userid"/> //用user主键生成中间表字段
<[color=red]many-to-many [/color]class="com.bjsxt.hibernate.Role" column="roleid"/>//用该标签维护关系,用Role主键生成中间表另一字段
</set>
[color=green]hibernate多对多关联映射(双向User<---->Role)[/color]
映射方法:
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>
</set>
table属性值必须和单向关联中的table属性值一致
<key>中column属性值要与单向关联中的<many-to-many>标签中的column属性值一致
在<many-to-many>中的column属性值要与单向关联中<key>标签的column属性值一致
[color=green]hibernate多对多关联映射(单向User---->Role)[/color]
具体映射方式:
<[color=red]set[/color] name="[color=red]roles[/color]" table="t_user_role"> //中间表名 roles为对另一方的引用
<[color=red]key [/color]column="userid"/> //用user主键生成中间表字段
<[color=red]many-to-many [/color]class="com.bjsxt.hibernate.Role" column="roleid"/>//用该标签维护关系,用Role主键生成中间表另一字段
</set>
[color=green]hibernate多对多关联映射(双向User<---->Role)[/color]
映射方法:
<set name="roles" table="t_user_role">
<key column="userid"/>
<many-to-many class="com.bjsxt.hibernate.Role" column="roleid"/>
</set>
table属性值必须和单向关联中的table属性值一致
<key>中column属性值要与单向关联中的<many-to-many>标签中的column属性值一致
在<many-to-many>中的column属性值要与单向关联中<key>标签的column属性值一致