两个表   一个employee   一个managermanager是employee子类employee 有emp_id  name  pass  mgr_id字段manager  有mgr_id   dep_name字段   mgr_id外键关联 使用joined-subclass映射策略就是employee中的emp_id主键跟manager中的mgr_id主键是共有主键如果是一个一个的添加  比如有6个员工分别是1 2 3 4 5 6  那 1跟2  必然是经理  因为他们共有主键嘛  如果以后我要添加经理  3就一定是经理  但是事实我想让7当经理  要怎样添加才行呢?  或者怎么改动映射文件达到我想要的效果~?希望大家踊跃发言     谢谢大家了  映射文件在下一楼

解决方案 »

  1.   

    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!--  Hibernate映射文件的根元素-->
    <hibernate-mapping package="org.qjkt.hrsystem.model">
        <class name="Employee" table="emp_table">
        <!--映射标识属性-->
        <id name="id" type="integer" column="emp_id">
        <!-- 指定使用identity主键生成策略 -->
        <generator class="identity"/>
        </id>
        <!-- 映射普通属性 -->   
        <property name="name" column="emp_name" type="string" not-null="true" 
        length="50" unique="true"/>
        <property name="pass" column="emp_pass" type="string" not-null="true"
        length="50" />
        <property name="salary" column="emp_salary" type="double"
        not-null="true"/>
        <!--映射和Manager的关联关系-->
        <many-to-one name="manager" column="mgr_id" 
        class="Manager" lazy="false"/>
        <!-- 映射和Attend之间的关联关系 -->
        <set name="attends" inverse="true">
        <key column="emp_id"/>
        <one-to-many class="Attend"/>
        </set>
        <!-- 映射和Payment之间的关联关系 -->
        <set name="payments" inverse="true">
        <key column="emp_id"/>
        <one-to-many class="Payment"/>
        </set>
        <!-- 映射Employee的子类Manager -->
        <joined-subclass name="Manager" table="mgr_table">
        <key column="mgr_id"/>
        <!-- 映射Manager的普通属性 -->
        <property name="dept" column="dept_name" 
        type="string" not-null="true" length="50"/>
        <!--映射和Employee之间的关联关系-->
        <set name="employees" inverse="true">
        <key column="mgr_id"/>
        <one-to-many class="Employee"/>
        </set>
        <!-- 映射和CheckBack之间的关联关系 -->
        <set name="checks" inverse="true">
        <key column="mgr_id"/>
        <one-to-many class="CheckBack"/>
        </set>
        </joined-subclass>
        </class>
        </hibernate-mapping>