知识大全 精通Hibernate之映射继承关系(一)

Posted

篇首语:沉舟侧畔千帆进,病树前头万木春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 精通Hibernate之映射继承关系(一)相关的知识,希望对你有一定的参考价值。

精通Hibernate之映射继承关系(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在域模型中 类与类之间除了关联关系和聚集关系 还可以存在继承关系 在图 所示的域模型中 Company类和Employee类之间为一对多的双向关联关系(假定不允许雇员同时在多个公司兼职) Employee类为抽象类 因此它不能被实例化 它有两个具体的子类 HourlyEmployee类和SalariedEmployee类 由于Java只允许一个类最多有一个直接的父类 因此Employee类 HourlyEmployee类和SalariedEmployee类构成了一棵继承关系树

  

  图 包含继承关系的域模型

  在面向对象的范畴中 还存在多态的概念 多态建立在继承关系的基础上 简单地理解 多态是指当一个Java应用变量被声明为Employee类时 这个变量实际上既可以引用HourlyEmployee类的实例 也可以引用SalariedEmployee类的实例 以下这段程序代码就体现了多态

  

  List employees= businessService findAllEmployees(); Iterator it=erator(); 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类的pany属性只会引用Company类本身的实例 数据库表之间并不存在继承关系 那么如何把域模型的继承关系映射到关系数据模型中呢?本章将介绍以下三种映射方式

  继承关系树的每个具体类对应一个表 关系数据模型完全不支持域模型中的继承关系和多态

  继承关系树的根类对应一个表 对关系数据模型进行非常规设计 在数据库表中加入额外的区分子类型的字段 通过这种方式 可以使关系数据模型支持继承关系和多态

  继承关系树的每个类对应一个表 在关系数据模型中用外键参照关系来表示继承关系

  提示 具体类是指非抽象的类 具体类可以被实例化 HourlyEmployee类和SalariedEmployee类就是具体类

cha138/Article/program/Java/ky/201311/28660

相关参考

知识大全 精通Hibernate之映射继承关系(二)

精通Hibernate之映射继承关系(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  把每个

知识大全 精通Hibernate之映射继承关系三

精通Hibernate之映射继承关系三  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <h

知识大全 精通Hibernate之映射继承关系二(图)

精通Hibernate之映射继承关系二(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  把每

知识大全 精通Hibernate之映射继承关系四(图)

精通Hibernate之映射继承关系四(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这种

知识大全 精通Hibernate之映射继承关系七(图)

精通Hibernate之映射继承关系七(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Co

知识大全 hibernate关系映射

  一对象关系映射基础  对象间的基本关系  首先我简要阐明一下对象之间的基本关系在这以后UML的课程中也会深入的学习对象具有的四种基本关系  关联关系关联关系在设计模式中是被提倡优先使用于继承关系的

知识大全 Hibernate各种映射关系总结

Hibernate各种映射关系总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  多对一  第一

知识大全 Hibernate ORM 对象-关系 映射

HibernateORM对象-关系映射  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hiber

知识大全 Hibernate的继承关系

Hibernate的继承关系  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一每个子类对应一个数据表

知识大全 映射对象标识符

精通Hibernate:映射对象标识符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java语