mybatis collection 两个表 字段名称相同 数据被覆盖

该博客介绍了在MyBatis中遇到两个表字段名称相同导致数据覆盖的问题及其解决方案。通过在SQL查询中为相同字段指定别名,避免了字段冲突,确保了数据的正确映射。示例展示了在resultMap和select语句中的具体配置方法。

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

问题:mybatis collection 两个表 字段名称相同 数据被覆盖
解决方法:在SQL中取一个不同的别名加以区分

<resultMap type="Desk" id="resultUserMap">  
        <result property="DESK_ID" column="DESK_ID" />  
        <result property="NAME" column="NAME" />  
        <result property="REMARK" column="REMARK" />  
        <collection property="books" ofType="Book" column="DESK_ID">  
            <id property="BOOK_ID" column="BOOK_ID" />      
            <result property="NAME" column="bNAME"/>  
            <result property="REMARK" column="bREMARK"/>     
            <result property="PRICE" column="PRICE"/>   
        </collection>  
</resultMap>    
  
<select id="getBooksByDesk" resultMap="resultUserMap" parameterType="String">  
        SELECT d.DESK_ID,d.NAME,d.REMARK,b.BOOK_ID,b.NAME as bNAME,b.REMARK as 
               bREMARK,b.PRICE  
        FROM   tb_desk d,tb_book b  
        WHERE  b.desk_id=d.desk_id AND d.desk_id=#{desk_id}   
</select>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值