在入离职管理系统中,一个员工(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>