在入离职管理系统中,一个员工(staff)只能有一个职位(position),而一个职位(position)可以被多个员工(staff)担任,所以t_staff 和 t_position存在多对一的关系。
但是,t_staff表中的字段position关联的并不是t_position中的主键,如下:
那么,对于这种情况,如何在SSH中设置多对一关系呢?
答案是:在”many-to-one”标签中使用property-ref属性即可,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.entry_exit.vo.StaffVo" table="t_staff">
<!-- 主键 -->
<id name="id" column="id" type="int" />
<property name="staffid" column="staffid" type="text" />
<property name="fullname" column="fullname" type="text" />
<property name="email" column="email" type="text" />
<property name="mobile" column="mobile" type="text" />
<!-- <property name="position" column="position" type="text" /> -->
<property name="birthday" column="birthday" type="date" />
<property name="status" column="status" type="text" />
<many-to-one property-ref="position" name="position" class="com.entry_exit.vo.PositionVo" cascade="save-update" ></many-to-one>
</class>
</hibernate-mapping>