内容如下:
   
          父类A
A的子类   B          C
B的子类  B1,B2   C的子类C1,C2我想把它映射到数据库中表,其中 A与B,C的要求是  一个子类对应一张表B,C与他们的子类B1,B2,C1,C2的要求是父类与子类用一张表 即最后数据库中生成的表一共有两张不知我把问题描述清楚了没有我在处理A与B,C的关系时使用的是 <union-class>,感觉再往下写不正确了。。求教,谢过 

解决方案 »

  1.   

    A与B,C的要求是  一个子类对应一张表:<union-subclass>B,C与他们的子类B1,B2,C1,C2的要求是父类与子类用一张表:<subclass>
     
      

  2.   

    在hibernate中,如果要使子类和父类共用一张表时,可以这么写<class ...>
       <id ...>
       </id>
       <discriminator ...>
       </discriminator>
       ...
      <sub-class discriminatro-value="...">
       ...
      </sub-class>
    </class>但是像我上面(帖子主题)的情况下,使用了<union-class>,就没法往里加
    <discriminator> 和 <subclass> 了...求助高手 ...
    帮忙分析一下 ...
      

  3.   

    可以参考下<?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="com.name.hibernate">
    <class name="Animal" table="t_animal" lazy="false">
    <id name="id">
    <generator class="native"/>
    </id>
    <discriminator column="type" type="string"/>
    <property name="name"/>
    <property name="sex"/>
    <subclass name="Pig" discriminator-value="P">
    <property name="weight"/>
    </subclass>
    <subclass name="Bird" discriminator-value="B">
    <property name="height"/>
    </subclass>
    </class>
    </hibernate-mapping>