版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、IT资讯交流网 WWW.IT315.ORG,Hibernate一对多关联关系映射,一对多数据库表(一方),创建教师表,用于描述一对多中的一方,IT资讯交流网 WWW.IT315.ORG,一对多数据库表(多方),创建学生表,用于描述一对多中的多方,并在表中设计一对多的外键关系(teacherUuid字段),IT资讯交流网 WWW.IT315.ORG,一对多模型(一方),创建教师类,用于描述一对多中的一方,并在类中描述一个老师对应多个学生的关系 由于学生信息不能重复,因此使用Set集合进行描述 Set集合初始化为任意Set模型集合,推荐使用HashSet,IT资讯交流网 WWW.IT315.ORG
2、,一对多模型(多方),创建学生类,用于描述一对多中的多方,并在类中描述一个学生对应一个老师的关系,IT资讯交流网 WWW.IT315.ORG,一对多配置关系(一方),创建教师模型配置文件TeacherModel.hbm.xml,用于描述一对多中的一方,并在描述中添加对应关系 一对多关系中一方包含有多方的集合,因此要在配置文件中描述多方的数据集合,IT资讯交流网 WWW.IT315.ORG,一对多配置关系(属性),在class配置中设置set集合与模型中的Set集合对应 name:模型中Set集合的对象名称 在set配置中添加一对多的模型关系 class:一对多关系中多方数据模型类名 在set配
3、置中添加 column:一对多关系中多方数据库表的外键字段名 注意:配置在one-to-many上方,IT资讯交流网 WWW.IT315.ORG,一对多配置关系(多方),创建学生模型配置文件StudentModel.hbm.xml,用于描述一对多中的多方,并在描述中添加对应关系 一对多关系中多方需要在配置文件中描述多对一的关系,IT资讯交流网 WWW.IT315.ORG,一对多配置关系(属性),在class配置中设置多对一的关系 name:模型中一方对象名称 class:一对多关系中一方数据模型类名 column :一对多关系中多方数据库表的外键字段名,IT资讯交流网 WWW.IT315.OR
4、G,一对多关系资源注册,最后将两个资源文件全部注册到系统配置中 一对多关系配置完成,IT资讯交流网 WWW.IT315.ORG,建立一对多关系总结,在两个模型类中根据对应关系添加对应的对象 一方:添加多方对象Set集合 多方:添加一方对象 在映射文件中配置关系 一方:添加set集合配置 多方:添加多对一关系 数据库表 根据需求在多方表中添加一方表的外键,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(添加数据),一方单独添加(无关联关系) 一方在单独添加数据时,因为不存在多方的对象,无需配置关系,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(添加数据),多
5、方单独添加(无关联关系) 多方在单独添加数据时,数据库表中需要配置其对应的外键,而此时不建立关系进行添加可以成功,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(添加数据),一方与多方同时添加数据,并互相建立关系 创建一方对象 创建多方对象 建立从一方到多方关系 建立从多方到一方关系 保存一方对象 保存多方对象,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(添加数据),一方单独添加(有关联关系) 如果仅添加一方数据而多 方数据不进行添加,此时 一方数据调用了保存方法 其状态为PO,多方数据 没有调用保存方法,其状 态为TO。PO在保存时如 果关联了TO对象
6、会抛出 持久化对象关联了瞬时对 象的异常,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(级联添加),一方单独添加(有关联关系)失败的解决方案: PO对象在关联到TO对象时,由于相互之间建立了关系,属于强绑定,如果想完成对PO对象的添加,必须将TO对象也伴随着添加,这种现象称为级联添加 设置一方对象添加模式为级联添加模型,级联设置时具有方向性,总的原则是是PO级联TO进行操作,级联设置在PO对应的配置文件中 如果一方级联多方 如果多方级联一方,IT资讯交流网 WWW.IT315.ORG,级联添加案例,问题:进行如下操作后,添加几条数据? 添加学生2 添加教师 添加学生1,教师
7、,学生1,学生2,学生3,教师与学生做了双向级联,蓝色箭头描述了关联关系,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(删除数据),在实际业务中,常遇到如下关联数据 多个订单隶属于一个客户 多个日程隶属于一个用户 多个课程成绩隶属于一个学生 多个学员隶属于一名老师 多个员工隶属于一个部门 多张车票隶属于一趟列车 删除相关业务操作如下几种 删除左侧多个中一个或者多个数据,保留右侧单个数据 删除左侧多个中一个或者多个数据,不保留右侧单个数据 删除右侧单个数据,同时删除左侧所有数据,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(删除数据),删除一对多关联关系中
8、多方的数据,保留一方相关的数据 使用原始的删除操作即可完成 删除一对多关联关系中一方的数据,保留一方相关的数据 使用原始的删除操作即可完成 此时首先执行更新操作,将一方数据对应的多方数据的外键修改为null。因为一方数据已经被删除,所以多方数据无法进行关联,因此设置为null 注意:如果数据库表的外键字段设置为允许为空,此时将抛出异常,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(级联删除)(重点),删除一对多关联关系中一方的数据,同时删除所有多方相关的数据级联删除 需要对一方数据进行配置,要求删除一方数据时,将对应的多方数据中外键值匹配的数据全部删除掉 修改Teacher
9、Model.hbm.xml,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(级联删除),级联删除要求被删除的数据必须是PO,因此在删除前需要首先将被操作对象状态设置为PO 使用查询方法,将对象设置为PO,然后进行删除操作 删除时首先执行update操作,将被关联的多方数据外键设置为null。如果多方对象的外键设置为不能为空,则程序又会出现异常,IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(孤子删除),在实际业务中,常遇到如下情况 顾客A通过购物网站,下了4份订单,但是发现其中有一种商品重复购买了,顾客取消了其中一份订单 以上问题中出现了下面描述的现象 当存
10、在一对多关联关系的数据中,一方数据取消对多方数据中一条或多条数据的关联,此时被取消关系的数据仍然存在,长此以往,数据库中将出现大量的垃圾数据,必须进行系统维护,如果该数据量十分庞大,对服务器具有很大的压力(实际情况null是不会出现的),IT资讯交流网 WWW.IT315.ORG,基于一对多关系的操作(孤子删除),在一对多的关联关系中,如果断开了一对多的关联关系,直接将多方被关联数据清除孤儿删除 完成上述操作需要如下步骤 先将要解除关系的两个对象转换为PO 解除关系 配置孤儿删除策略,IT资讯交流网 WWW.IT315.ORG,cascade属性详解,IT资讯交流网 WWW.IT315.ORG
11、,cascade属性详解,save-update 级联添加,被关联对象TOsave,DOupdate delete:级联删除 delete-orphan:孤儿删除 all:除delete-orphan外所有配置 all-delete-orphan:all加delete-orphan组合 none:忽略级联关系(默认值) 注意:cascade属性不仅维护级联对象,而且还维护级联关系,IT资讯交流网 WWW.IT315.ORG,一对多关系中的单向与双向维护,在实际业务中,常遇到如下情况 员工A从本部门离职,工作交接过程中,需要将员工A从本部门申请的所有固定资产交由员工B管理(临时管理),此时要将员
12、工A对应的固定资产转义到员工B名下,也就是改变对应固定资产的所属人编号 IOS班学员A转入Java班学习,需要将学员A的学籍档案绑定到Java班名下,修改学员A对应的班级编号 以上问题中出现了下面描述的现象 当存在级联关系的多方数据,需要将关系从一方数据A处转接到一方数据B处,此时只需要维护多方关系数据对应的模型即可 如果在维护关系时,一方数据参与了维护,就会出现两次关系维护操作,给数据库服务器造成压力,IT资讯交流网 WWW.IT315.ORG,一对多关系中的单向维护与双向维护,双向维护 一对多关系中的双方都对关系进行维护 优点:数据维护肯定能达到效果 缺点:维护操作量冗余 单向维护 一对多
13、关系中关联关系交由多方独立维护,一方放弃维护权 优点:避免进行无效工作 缺点:开发者进行关系维护时必须使用多方进行关系维护,否则问题是灾难性的 操作步骤: 设定非维护方不具有关系维护权限inverse=“true”,IT资讯交流网 WWW.IT315.ORG,cascade与inverse冲突问题,cascade负责级联操作 对象的维护 关系的维护 inverse负责级联关系维护 关系的维护,只影响外键 两者共存且发生冲突时 cascade决定了级联操作时对象的创建 inverse阻止cascade对级联操作时的关系维护 结论: 如果配置inverse=“true”则级联操作对象将不包含关系的维护 如果inverse=“false”则级联操作对象将包含关系的维护(默认),IT资讯交流网 WWW.IT315.ORG,一对多关系总结(模型),一对多关系TeacherModel(一方) 声明集合Set,用于存放多方(StudentModel)数据模型 提供对应的标准封装方法 一对多关系StudentModel(多方) 声明一方(TeacherModel)数据模型对象 提供对应的标准封
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026温州文成县事业单位招聘63人-统考笔试备考试题及答案解析
- 2026春季中电信量子集团博士招聘笔试备考题库及答案解析
- 2026年通州湾示范区事业单位统一公开招聘工作人员15人笔试备考题库及答案解析
- 2026上半年北京事业单位统考大兴区招聘137人(第一批)考试备考题库及答案解析
- 2026内蒙古赤峰林西县社会福利院招聘笔试备考题库及答案解析
- 泸州老窖股份有限公司招聘(21人)笔试模拟试题及答案解析
- 2026江西长旅数智科技有限公司招聘5人笔试参考题库及答案解析
- 2026年山东省德州市高职单招综合素质考试题库有答案详细解析
- 上海市徐汇区名校2026年初三下学期3月联考(文理)语文试题含解析
- 浙江省嘉兴市嘉善县市级名校2026年初三2月第一次调研英语试题理试题含解析
- 新苏教版科学六年级下册全册教案(含反思)
- 第9课《呵护我们的鼻子》课件
- 世界现代化理论
- 内燃机车柴油机冷却水系统-交流传动内燃机车柴油机冷却水系统
- 门诊用药咨询与指导-课件
- 化学入门-给小学生讲化学
- 寻猫启事范本
- 第1课 俄国十月革命(课堂PPT)
- 蒙太奇和镜头组接方式课件
- 超滤反渗透技术协议080729
- 我国的零售业态简介
评论
0/150
提交评论