Hibernate 继承关系映射

 

继承关系映射

继承是面向对象编程中一个很重要的特征,在做面向对象的分析与设计时,经常会设计出具体继承关联映射的持久化类。如何把这些持久化类之间的继承关系映射到关系数据库上的问题已解决。继承在对象模型中是is a的关系,但在关系模型中,实体之间只有has a的关系,也就是说,继承在对象模型和关系模型上是不匹配的。所幸的是,Hibernate提供了3种常用的继承映射方案。

       举例讲解这3种继承方案的使用:笔者在开发一个音乐网站时就涉及继承映射的问题,音乐网站中的歌手可分为单人歌手、乐队组合等。

1)  Singer类

/**歌手抽象类*/

public abstract class Singer{

       private  Long id ;//对象标示符

       private String name;//名称

       private String region;//歌手所属区域(如:华人、日韩、欧美等)

       private String description;//描述

       public Singer(){}//无参构造方法

//以下为省略的所有的getter()与setter()方法

}

SingleSinger类

/**单人歌手实体类*/

public calss SingleSinger extends Singer{

       private Character gender;//性别

       private SingleSinger(){}//无参构造方法

//以下省略为所有属性的getter()和setter()方法

      

}

Bands类

/**乐队组合实体类*/

public class Bands extends Singer{

       private String leader;//主唱姓名

       public Bands(){}//无参构造方法

//以下为所有属性的getter()和setter()方法

}

1.       整个继承层次一张表

把整个继承层次的多个类的信息存放到一张表里。需要在表中添加一个特定的字段,用这个字段的值来进行区分哪些记录是属于哪个类的。

对应的映射文件Singer.hbm.xml

        “-//Hibernate/Hibernate Mapping DTD 3.0//EN”

        http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd>

       

你可能感兴趣的:(Hibernate 继承关系映射)