多对多关联映射
两个实体型之间的联系
多对多联系
- 定义
如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n。
- 在实体中实现多对多联系的设计
在需要关联的实体中设计关联对象的集合
- 数据库中实现多对多联系的设计
可是使用第三方表
该表中会生成既是主键也是外键
该外键的参照是另外关联的表中的主键
- Hibernate多对多关联映射
Student.hbm.xml
- 映射文件中属性的含义以及用法
<set>元素属性。
name属性:指定类的属性名(就是当前类关联的类的对象的集合);
table属性:指定多对多关联关系中间表(即是第三表);
cascade级联操作属性:save-update、delete、all、none。
<set>子元素。
<key>中column属性元素:设定实体类的对应表在第三张表的外键;
<many-to-many>元素中class属性:设定关联类的类型。
<many-to-many>元素中column属性:设定关联类的对应表在中间表(第三表)的外键。
inverse 是 Hibernate 中双向关联关系中的基本概念,用来设置关系由哪一方来维护。
inverse=true 表示被控方,=false 表示主控方;
在多对多关系中需要设置哪一方为被控方,即设置inverse=true 。