mysql查询有数据,mybatis查询少了几条

本文探讨了在使用MyBatis框架时遇到的一个问题:相同SQL语句下,MySQL显示7条数据,而MyBatis仅返回5条。深入分析发现,问题根源在于MyBatis的resultMap配置,其id字段要求唯一性,导致部分数据被忽略。通过调整字段属性,成功解决了数据不一致的问题。

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

今天犯了一个挺傻的错误,完全相同的sql语句,mysql查出来有7条数据,而mybatis只有5条,翻来覆去没有找到原因,同一个库的呀,甚至想到是不是跟缓存有什么关系。最后找到原因原来是因为用的resultMap

<resultMap id="applyInfoList" type="com.entity.ApplyInfo">
		<id column="id" property="id"/>
        <result column="apply_email" property="applyEmail"/>
        <result column="apply_phone" property="applyPhone"/>
        <result column="apply_id" property="applyId"/>
        <result column="apply_number" property="applyNumber"/>
        <result column="real_time" property="realTime"/>
        <result column="deleted_flag" property="deletedFlag"/>
        <association property="ufloTask" javaType="com.entity.UfloTask">
            <id column="taskId" property="id"/>
            <result column="department" property="taskName"/>
            <result column="nodeName" property="nodeName"/>
            <result column="rootProcessInstanceId" property="rootProcessInstanceId"/>
        </association>
    </resultMap>

返回的数据有三条id是一样的,mybatis中resultMap的id具有唯一性,只能保留最后一条

解决方法的话把id改成result,或者起别名吧

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值