精通Hibernate映射继承关系之六

来源:王朝搜索
 
精通Hibernate映射继承关系之六

Company与Employee类之间为一对多多态关联关系,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么就能映射Company类的employees集合。本节介绍如何映射多对一多态关

精通Hibernate映射继承关系之二

把每个具体类映射到一张表是最简单的映射方式。如图14-2所示,在关系数据模型中只需定义COMPANIES、HOURLY_EMPLOYEES和SALARIED_EMPLOYEES表。为了叙述的方便,

精通Hibernate映射继承关系之一

在域模型中,类与类之间除了关联关系和聚集关系,还可以存在继承关系,在图14-1所示的域模型中,Company类和Employee类之间为一对多的双向关联关系(假定不允许雇员同时在多个公司兼职),E

精通Hibernate映射继承关系之三

这种映射方式只需为继承关系树的Employee根类创建一张表EMPLOYEES。如图14-4所示,在EMPLOYEES表中不仅提供和Employee类的属性对应的字段,还要提供和它的两个子类的所有

精通Hibernate映射继承关系之四

在这种映射方式下,继承关系树的每个类以及接口都对应一个表。在本例中,需要创建EMPLOYEES、HE和SE表。 如图14-6所示,EMPLOYEES表仅包含和Employee类的属性对应的字段,H

精通Hibernate映射继承关系之五

本章介绍的三种映射方式各有优缺点,表14-1对这三种映射方式做了比较。 点击查看大图 表14-1 比较三种映射方式 如果不需要支持多态查询和多态关联,可以采用每个具体类对应一个表的映射

精通Hibernate之映射继承关系三

<hibernate-mapping <class name="mypack.SalariedEmployee" table="SALARIED_EMPLOYEES" &lt

精通Hibernate之映射继承关系五

本节的范例程序位于配套光盘的sourcecode\chapter14\14.2目录下,运行该程序前,需要在SAMPLEDB数据库中手工创建COMPANIES表和EMPLOYEES表,然后加入测试数

精通Hibernate之映射继承关系六

在这种映射方式下,继续关系树的每个类以及接口都对应一个表。在本例中,需要创建EMPLOYEES、HE和SE表。 如图14-6所示,EMPLOYEES表仅包含和Employee类的属性对应

精通Hibernate之映射继承关系八

由于关系数据模型不答应一个表的外键同时参照两个表的主键,因此无法对TABLE_D表的A_ID字段定义外键参照约束,而应该通过其他方式,如触发器,来保证A_ID字段的参照完整性。由于TABLE_D表

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有