文章目录
Hibernate的一对多关系映射
表与表之间关系
一对多关系
多对多关系
一对一关系
什么样关系属于一对多?
一个部门对应多个员工,一个员工只能属于某一个部门。
一个客户对应多个联系人,一个联系人只能属于某一个客户。
一对多建表原则:在多的一方创建外键指向一的一方的主键
Hibernate的一对多配置
Hibernate的一对多配置
搭建Hibernate基本环境
创建表
创建实体
一的一方
放的是多的一方的集合
多的一方
放的是一的一方的对象
创建映射
一的一方
配置的<set>集合
多的一方
配置<many-to-one>
编写测试类
Hibernate的一对多的操作
级联操作:cascade,用于操作其关联的对象。
级联保存或更新
级联删除
测试对象导航
放弃外键维护权:inverse,用户控制是否有外键维护能力
一对多的级联操作
什么叫做级联
级联指的是,操作一个对象的时候,是否会同时操作其关联的对象。
级联是有方向性
操作一的一方的时候,是否操作到多的一方
操作多的一方的时候,是否操作到一的一方
级联保存或更新
保存一的一方同时保存多的一方
保存多的一方同时保存一的一方
一对多设置了双向关联产生多余的SQL语句
解决多余的SQL语句
单向维护:
使一方放弃外键维护权:
一的一方放弃。在set上配置inverse=”true”
级联删除
删除一边的时候,同时将另一方的数据也一并删除。
删除客户级联删除联系人
Hibernate的多对多关系映射
什么样关系属于多对多?
一个学生可以选择多门课程,一门课程也可以被多个学生选择。
一个用户可以选择多个角色,一个角色也可以被多个用户选择。
多对多建表原则:创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键
Hibernate的多对多配置
Hibernate的多对多
Hibernate的多对多配置
搭建Hibernate环境
创建表
创建实体
放置的是对方的集合
创建映射
配置的是对象的<set>
编写测试类
Hibernate的多对多操作
级联操作
级联保存或更新
级联删除
其他的操作
给用户选择角色
给用户改选角色
给用户删除角色