1、单项多对一关联
1.1、实体关联关系
1.1.1、关联关系
(通过一个对象持有另一个对象的实例)
1.1.2、泛化关系
(通过对象之间的继承方法来实现)
1.2、类与类之间最普遍的关系就是关联关系
(在UML语言中,关联是有方向的)
2、单向一对多
3、双向一对多
4、cascade和inverse
4.1、cascade属性
4.1.1、当设置cascade属性不为none时,hibernate会自动持久化所关联的对象
4.1.2、cascade属性的设置会带来性能生的变动,需谨慎设置
4.2、属性值
4.2.1、属性值 含义和作用
all 对所有操作进行级联操作
save-update 执行保存和更新操作时进行级联操作
delete 执行删除操作时进行级联操作
none 对所有操作不进行级联操作
4.3、inverse属性
4.3.1、术语"inverse"直译为“反转”
4.3.2、在hibernate中,inverse属性指定了管理关系中的方向
4.3.3、关联关系中,inverse="false"的为主动方,由主动方负责维护关联关系
4.3.4、在一对多关联中,将one方的inverse设置为true,这将有助性能的改善
4.4、cascade和inverse的区别
4.4.1、inverse指的是关联关系的控制方向,而cascade指的是层级之间的连锁操作
5、多对多关
6、本阶段总结
对象间关联分为一对多、多对一和多对多几种情况,关联是有方向的
hibernate通过配置的方式,将对象间的关系映射到数据库上,使用hibernate关联关系,首先要做好配置
<Set>节点的inverse属性描述了由谁负责关联关系映射到数据库上,cascade属性描述了级联操作规则
配置多对多关联式,<set>节点要通过table属性指定关联表的表名,其下<key>子节点的column属性为关联表中关联到自己的字段名