人类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML请看15讲.
映射到两个表:
人类(Person) 与 男人(Men)类 映射到如下的t_person表中 , 有以下5个字段:
1 int id //主键
2 varchar name //父类中的姓名
3 int age //父类中的年龄
4 int/varchar type //区分"人","男人","女人" 的专用字段, 默认类型是varchar, 也可以指定为int类型. 叫鉴别器字段
//Person类:type值设为0, Men类: type值设为1, Women 类: 2
5 varchar a //"男人"类专有属性
女人(Women)类, 单独保存在一张表中.就像第15讲一样.
映射文件 例子就像下面:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="包名"> <class name="Person" discriminator-value="0"> <id name="id"> <generator class="hilo"/> </id> <!-- 鉴别器 ,重要 --> <discriminator column="type" type="int"/> <property name="name"/><!-- 父类的属性 --> <property name="age"/><!-- 父类的属性 --> <!-- Men类的映射--> <subclass name="Men" discriminator-value="1"> <property name="a"/><!-- Men类专有的属性a --> </subclass> <!-- Women类的映射--> <subclass name="Women" discriminator-value="2"> <join table="t_women"> <key column="person_id"/> <property name="b"/> <!-- Women类专有的属性b --> </join> </subclass> </class> </hibernate-mapping>
保存与查询操作: 略.. 请看14,15讲