一,数据库的多对多
A.数据库中不能直接映射多对多
处理:创建一个桥接表(中间表),将一个多对多关系转换成两个一对多
注1:数据库多表联接查询,永远就是二个表的联接查询
注2:交叉连接
注3:外连接:left(左)/right(右)/full(左右)
主从表:连接条件不成立时,主表记录永远保留,与null匹配
在hibernate中,你只管查询当前表对象即可,
hibernate会字段关联桥表以及关联表查询出关联对象
二, hibernate的多对多
hibernate可以直接映射多对多关联关系(看作两个一对多)
- 多对多关系注意事项
a. 一定要定义一个主控方
b. 多对多的删除是主控方直接删除
c. 被控方先通过主控方解除多对多关系,再删除被控方
d. 禁用级联删除
e. 关联关系编辑,不需要直接操作桥接表,hibernate的主控方会自动维护