人类(Person) , 男人(Men)继承"人"类, 女人(Women)继承"人"类, UML请看15讲.
伦理片 http://www.dotdy.com/
映射到两个表:
人类(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>