- 2
- 0
- 约1.35万字
- 约 12页
- 2018-11-16 发布于江苏
- 举报
ITjob就业培训java优秀教材
第三十五章:映射继承关系 ITJob就业培训
PAGE 705
第三十五章: 映射继承关系
学习目标
进一步理解Hibernate的运行原理
在Hibernate实现域模型中的各种关系
在Hibernate中实现复杂的多对一关联
域模型关系
在域模型中,类与类之间除了关联关系和聚集关系,还可以存在继承关系,在下图的域模型中,Company类和Employee类之间为一对多的双向关联关系(假定不允许雇员同时在多个公司兼职),Employee类为抽象类,因此它不能被实例化,它有两个具体的子类HourlyEmployee类和SalariedEmployee类。由于Java只允许一个类最多有一个直接的父类因此Employee类、HourlyEmployee类和SalariedEmployee类构成了一颗继承关系树。
包含继承关系的域模型
在面向对象的范畴中,还存在多态的概念,多态建立在继承关系的基础上。简单的理解,多态是指当一个 Java 应用变量被声明为 Employee 类时,这个变量实际上既可以引用HourlyEmployee类的实例,也可以引用 SalariedEmployee类的实例。以下这段程序代码就体
现了多态:
List employees= businessService.findAllEmployees();
Iterator it=employees.iterator();
while(it.hasNext()){
Employee e=(Employee)it.next();
if(e instanceof HourlyEmployee){
System.out.println(e.getName()+ +((HourlyEmployee)e).getRate());
}else
System.out.println(e.getName()+ +((SalariedEmployee)e).getSalary());
}
BusinessService类的findAllEmployees()方法通过Hibernate API从数据库中检索出所有Employee对象。findAllEmployees()方法返回的集和既包含 HourlyEmployee类的实例,也包含 SalariedEmployee 类的实例,这种查询被称为多态查询。以上程序中变量 e 被声明为Employee 类型,它实际上既可能引用 HourlyEmployee 类的实例,也可能引用SalariedEmployee类的实例。
此外,从 Company 类到 Employee 类为多态关联,因为 Company 类的 employees 集合中可以包含 HourlyEmployee 类和 SalariedEmployee 类的实例。从 Employee 类到 Company类不是多态关联,因为Employee类的company属性只会引用 Company类本身的实例。
数据库表之间并不存在继承关系,那么如何把域模型的继承关系映射到关系数据模型中呢?本章将介绍以下三种映射方式:
继承关系树的每个具体类对应一个表:关系数据模型完全不支持域模型中的继承关系和多态。
继承关系树的根类对应一个表:对关系数据模型进行非常规设计,在数据库表中加入额外的区分子类型的字段。通过这种方式,可以使关系数据模型支持继承关系和多态。
继承关系树的每个类对应一个表:在关系数据模型中用外键参照关系来表示继承关系。
继承关系树的每个具体类对应一个表
把每个具体类映射到一张表是最简单的映射方式。如上图所示,在关系数据模型中只需定义 COMPANIES、HOURLY_EMPLOYEES 和 SALARIED_EMPLOYEES 表。为了叙述的方便,下文把 HOURLY_EMPLOYEES 表简称为 HE 表,把 SALARIED_EMPLOYEES表简称为SE 表。HourlyEmployee类和 HE 表对应,HourlyEmployee类本身的 rate属性,以及从 Employee 类中继承的 id 属性和 name 属性,在 HE 表中都有对应的字段。此外,HourlyEmployee类继承了Employee类与Company类的关联关系,与此对应,在HE 表中定义了参照COMPANIES表的COMPANY_ID 外键。SalariedEmployee 类和 SE 表对应,SalariedEmployee 类本身的 salary 属性,以及从Employee 类中继承的 id 属性和 name 属性,在 SE
您可能关注的文档
- International FinancialManagement 6国际财务管理课件.ppt
- 商 务 谈 判 (第二版)第4章准备.ppt
- 服务营销 第8章+服务补救.ppt
- 第八课《财政与税收》课件(共69张PPT).ppt
- -学度石家庄栾城高三文科质量检测.doc
- AFBS铝合金体系.doc
- ANSYSICEMCFD优秀教材.doc
- BA经销商场规划书.doc
- Blend创建或修改.docx
- BRABENDER计量称培训优秀教材.doc
- 住院医师规范化培训《康复医学》习题(含参考答案)解析.docx
- 2025年5月住院医师规范化培训《耳鼻咽喉科》复习题(含参考答案).docx
- 2025年9月住院医师规范化培训《骨科》试题库(含答案).docx
- 2025年住院医师规范化培训《口腔修复科》模拟考试题+答案.docx
- 8月住院医师规范化培训《外科》测试题(附答案解析).docx
- 2025年6月住院医师规范化培训《预防医学科》练习题(附参考答案).docx
- 2025年7月住院医师规范化培训《放射科》习题(含参考答案).docx
- 2024年住院医师规范化培训《医学影像科》模拟试题(含答案).docx
- 住院医师规范化培训《神经外科》模考试题与参考答案.docx
- 3月住院医师规范化培训《康复医学》测试题+参考答案解析.docx
最近下载
- 柱状图商务总结计划报告统计图表PPT模板.pptx VIP
- 大学英语四级考试高频词汇1500(打印版).docx VIP
- 制作一个小杆秤.pdf VIP
- 2026年中考语文总复习:古诗文默写 第一部分 直接型默写.pdf VIP
- (沪教版2025新教材)七年级英语下册全册词汇总结_可搜索.pdf VIP
- ZP4057旋转式压片机标准清洁操作规程.doc VIP
- 2025至2030年杭州市房地产市场发展现状调研及投资趋势前景分析报告.docx
- 2021-2025年重庆市中考语文试卷高频考点分析及 2026 年备考建议 素材.docx VIP
- PHC管桩水平裂缝成因分析及处置.pdf VIP
- 火力发电厂热力设备和管道保温油漆设计技术规定.docx VIP
原创力文档

文档评论(0)