两个表 一个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当经理 要怎样添加才行呢? 或者怎么改动映射文件达到我想要的效果~?希望大家踊跃发言 谢谢大家了 映射文件在下一楼
<!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>