将子类设计成单独的表格
 
10.继承映射多表设计_职场
 
映射文件:
<joined-subclass name="Skiller" table="skiller">
      <key column="emp_id" />
      <property name="skill" />
    </joined-subclass>
    <joined-subclass name="Sales" table="sales">
      <key column="emp_id" />
      <property name="sell" />
    </joined-subclass>
 
这样设计的表,如果查询起来将涉及到多表联合查询,效率低
 
再一种设计如下:
混合使用
10.继承映射多表设计_映射_02
 
映射文件需要打开鉴别器,
技术员的属性仍然需要鉴别器,而sales则不需要,而是指定subclass字段
 
<subclass name="Sales" discriminator-value="2">
      <join table="sales">
        <key column="emp_id" />
        <property name="sell" />
      </join>
    </subclass>
且在Hibernate配置文件中增加映射
 
另外一种:每个具体类一张表(union-subclass)
10.继承映射多表设计_表_03
 
映射文件:
<union-subclass name="Skiller" table="skiller">
      <property name="skill"/>        
    </union-subclass>
    <union-subclass name="Sales" table="sales">
      <property name="sell"/>        
    </union-subclass>
使用这种方式时,主键id必须修改为:hilo
 
设计时,尽量使得表的数目小于类的数目,使得数据操作高效