入离职管理系统——如何实现非主键多对一关联

本文介绍在SSH框架中如何正确配置多对一关系,特别是当员工表与职位表之间的关联字段不是直接引用主键时的解决方案。通过使用property-ref属性实现这一配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在入离职管理系统中,一个员工(staff)只能有一个职位(position),而一个职位(position)可以被多个员工(staff)担任,所以t_staff 和 t_position存在多对一的关系。
但是,t_staff表中的字段position关联的并不是t_position中的主键,如下:
t_staff表

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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值