<hibernate-mapping <class name="mypack.SalariedEmployee" table="SALARIED_EMPLOYEES" <
本节的范例程序位于配套光盘的sourcecode\chapter14\14.2目录下,运行该程序前,需要在SAMPLEDB数据库中手工创建COMPANIES表和EMPLOYEES表,然后加入测试数
在这种映射方式下,继续关系树的每个类以及接口都对应一个表。在本例中,需要创建EMPLOYEES、HE和SE表。 如图14-6所示,EMPLOYEES表仅包含和Employee类的属性对应
由于关系数据模型不答应一个表的外键同时参照两个表的主键,因此无法对TABLE_D表的A_ID字段定义外键参照约束,而应该通过其他方式,如触发器,来保证A_ID字段的参照完整性。由于TABLE_D表
把每个具体类映射到一张表是最简单的映射方式。如图14-2所示,在关系数据模型中只需定义COMPANIES、HOURLY_EMPLOYEES和SALARIED_EMPLOYEES表。为了叙述的方便,
在域模型中,类与类之间除了关联关系和聚集关系,还可以存在继承关系,在图14-1所示的域模型中,Company类和Employee类之间为一对多的双向关联关系(假定不允许雇员同时在多个公司兼职),E
这种映射方式只需为继承关系树的Employee根类创建一张表EMPLOYEES。如图14-4所示,在EMPLOYEES表中不仅提供和Employee类的属性对应的字段,还要提供和它的两个子类的所有
在这种映射方式下,继承关系树的每个类以及接口都对应一个表。在本例中,需要创建EMPLOYEES、HE和SE表。 如图14-6所示,EMPLOYEES表仅包含和Employee类的属性对应的字段,H
本章介绍的三种映射方式各有优缺点,表14-1对这三种映射方式做了比较。 点击查看大图 表14-1 比较三种映射方式 如果不需要支持多态查询和多态关联,可以采用每个具体类对应一个表的映射
Company与Employee类之间为一对多多态关联关系,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么就能映射Company类的employees集合。本节介绍如何映射多对一多态关