欢迎来到天天文库
浏览记录
ID:12918099
大小:44.50 KB
页数:6页
时间:2018-07-19
《hibernate继承映射》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、在Java或.Net类与类之间存在关联、聚集和继承关系。一般来说:关联关系:采用“一对多或一对一”的映射即可;聚集关系:采用“集和映射”,即映射Set,Bag,List,Map继承关系:本文以下详述 因为关系数据库的表之间不存在继承关系,所以Hibernate提供了以下三种对继承关系映射的方法,即在继承关系树中:(1)、每个具体类(非抽象类)对应一个表:此方式中关系数据模型完全不支持对象的继承关系。(2)、基类(根类)对应一个表:此方式中对关系数据模型进行非常规设计,在数据库表中加入额外的区分子类的字段,从而使关系数据模型可以支持继承关系。(3)、每个类对应一个表:此方式中在关系数据模
2、型中用外键关系来表示继承关系。这三种映射方式都各自有利有弊,需要根据具体情况来选择使用。分别说明一下:为了说明方便,引用一个比较经典的简单例子Employee类,它为抽象类,有两个直接子类HourlyEmployee类,Employee的子类,继承父类的name属性SalarilyEmployee类,Employee的子类,继承父类的name属性Company类,它有一个employees集和属性在此,先这样说明一下啊,日后有时间放个类图上来就一目了然了。 继承关系中每个具体类对应一个表这是最简单的映射方式。基类Employee没用映射,只需要为两个子类提供映射关系即可。看一下映射文件
3、: 4、ssname="HouredEmployee"table="HOURLY_EMPLOYEES"> 5、name="company" column="COMPANY_ID"class="Company"/> 6、 可以看出,在这种映射方式中,每个子类除了映射自己的属性外,还需要映7、射从父类继承来下的属性,这是该映射方式的一个特点。 基类(根类)对应一个表这种映射方式只需为基类Employee创建一个表即可。在表中不仅提供与Employee所有属性的字段,还要提供与所有子类属性对应的字段,此外还需要一个字段用于区分子类的具体类型。此时的映射文件为:
4、ssname="HouredEmployee"table="HOURLY_EMPLOYEES"> 5、name="company" column="COMPANY_ID"class="Company"/> 6、 可以看出,在这种映射方式中,每个子类除了映射自己的属性外,还需要映7、射从父类继承来下的属性,这是该映射方式的一个特点。 基类(根类)对应一个表这种映射方式只需为基类Employee创建一个表即可。在表中不仅提供与Employee所有属性的字段,还要提供与所有子类属性对应的字段,此外还需要一个字段用于区分子类的具体类型。此时的映射文件为:
5、name="company" column="COMPANY_ID"class="Company"/>
6、 可以看出,在这种映射方式中,每个子类除了映射自己的属性外,还需要映
7、射从父类继承来下的属性,这是该映射方式的一个特点。 基类(根类)对应一个表这种映射方式只需为基类Employee创建一个表即可。在表中不仅提供与Employee所有属性的字段,还要提供与所有子类属性对应的字段,此外还需要一个字段用于区分子类的具体类型。此时的映射文件为:
此文档下载收益归作者所有