一.逻辑
1.确定俩表之间的关系
一个用户可以有多个角色。
一个角色可以有多个用户。
所以,用户和角色之间是多对多关系。
2.在数据库实现俩表之间的关系建立
在数据库多对多关系需要中间表。
中间表只能出现用户和角色的主键。
3.在实体类描述俩表之间的关系
双方实体类各自包含对方集合的引用。
4.在映射配置文件中配置俩表之间的关系
双方映射配置文件中配置多对多关系的set标签。
二.范例
1.映射配置文件
(1)多对多配置的格式
<!-- 多对多映射配置
涉及标签:
set:映射set集合属性
name:设置集合属性名称
table:指定中间表的名称
cascade设置级联操作
key:映射外键字段
column:设置当前实体和中间表的外键字段
many-to-many:映射多对多关系
class:对方实体类的全限定类名
column:设置对方实体在中间表的名称
-->
<set name="sysRoles" table="user_role_ref" cascade="save-update">
<key column="user_id"></key>
<many-to-many class="cn.domain.SysRole" column="role_id"></many-to-many>
</set>
(2)user表的映射配置
(3)role表的映射配置
2.实体类
(1)user
(2)role
3.保存操作
4.删除操作【包含注意事项】
三.注意事项
禁止使用级联删除操作多对多关系的表。