Hibernate学习笔记(映射)
代码注释简洁易懂,笔记就简略写了,代码已上传
链接:https://pan.baidu.com/s/1-GswKfv5WuCwMqK_kkV_cQ
提取码:b41n
Hibernate的一对多关联映射
数据表与表之间的关系
一对多:例如,一个部门对于多个员工,一个员工只能属于某个部门
建表原则:在多的一方创建外键指向一的一方的主键
多对多:例如,一个学生可以选择多门课程,一门课程也可以被多个学生选择
建表原则:创建一个中间表,中间表至少有两个字段分别作为外键指向多对多双方的主键
一对一(了解):例如,一个公司只能有一个注册地址,一个注册地址只能被一个公司注册
建表原则:唯一(unique)外键对应或主键对应
客户表(一) 联系人表(多)
Hibernate一对多的关系配置
实体和映射:
测试类:
自动建表为create
一对多关系只保存一边不可以,报一个瞬时对象异常:持久态对象关联了一个瞬时态对象。
一对多的级联操作(解决上面的问题)
级联: 操作一个对象的时候,是否会同时操作其关联的对象
级联具有方向性:操作一的一方的时候,是否操作到多的一方;操作多的一方的时候,是否操作到一的一方。
级联保存或更新
保存客户级联联系人
保护联系人级联客户
对象导航测试
级联删除
删除客户级联删除联系人
删除联系人级联删除客户(基本不用)
一对多设置了双向关联会产生多余的SQL语句
一级缓存的缓存区和快照区机制,双方都可维护外键引起
解决:单向维护 或者 使一的一方放弃( 关系维护的主动方由多的发起 ) 在set上配置inverse=“true”
Hibernate的多对多关联映射
角色表、用户表、中间表
实体和映射
多对多级联保存操作:
多对多级联删除操作(基本不用):
多对对其他操作: