本篇继续介绍hibernate中的inheritedmapping.
考虑这样一个继承关系mammal与cat,dog.对应的类如下 【程序编程相关:AppFuse1.7 Tutorial 】
不同与上一篇,这次我们选择选用不同的table来存储相应的父类与子类. 【推荐阅读:项目维护中的总结——简单的Apache+】
public class cat extends mammal { private string kind; private int scratchlevel;} 【扩展信息:把AppFuse配置启动起来的步骤】
public class mammal { private int id; private string name;}
public class dog extends mammal { private string variety; private int bitelevel;}
由于我们采用不同的table来存储相应的类数据,所以在设计上要选择较比巧妙的方法,即在cat与dog对应的table中采用主键映射的方法.我们将mammal对应的table中的id作为cat与dog的外键,并且在cat与dog对应的table中只存储以下的字段信息:
create table cat( cat_id int primary key not null, kind varchar(10) not null, scratchlevel int not null);
create table dog( dog_id int primary key not null, variety varchar(15) not null, bitelevel int not null);
发现了没?cat与dog从mammal中继承的name域在table中没有相应的字段来存储.... 下一页