Mybatis一对多xml关联映射数据返回异常处理纪要

背景: 在数据过滤时,多数据关联后,一般数据id有着辨别数据来源举足轻重的地位,因此一般会在数据中体现.但是在xml映射时或有注意不到
id重复的情况,最终应该出现比如6条数据,但是却只出现了2条,为了解决此类问题,特此纪要!

问题:
    Mybatis一对多xml关联映射时应该返回N条数据,但是数据返回缺失...
 
问题原因:
    Mybatis一对多xml关联映射查询时不同数据的主键id不能重复
 
解决办法:
    重起别名.
<!-- Xml -->
    <resultMap id="comparisonMap" type="com.*.PcmCustomerConfig">
        <id column="ID" property="id" />
        <result column="CC_CODE" property="ccCode" />
        <!-- ..... -->
            <collection property="pcmCustomerConfigD" javaType="java.util.List" ofType="com.*.PcmCustomerConfigD">
                <id column="CONFIGD_ID" property="id" />
                <result column="CC_ID" property="ccId" />
                <!-- ..... -->
            </collection>
    </resultMap>
 
    <select id="getConstomerConfigData" resultMap="comparisonMap">
        SELECT CONFIG.*, 
               CONFINGD.ID AS CONFIGD_ID, 
               CONFINGD.*
            FROM NDRP_PCM_CUSTOMER_CONFIG CONFIG, NDRP_PCM_CUSTOMER_CONFIG_D CONFINGD 
            WHERE CONFIG.ID = CONFINGD.CC_ID
        
        <!-- 部件节点编号:MODULE_CODE -->
        <if test="moduleCode != null and moduleCode != ''">
            and MODULE_CODE = #{moduleCode}
        </if>

        <!-- MODULE_VERSION -->
        <if test="moduleVersion != null and moduleVersion != ''">
            and MODULE_VERSION = #{moduleVersion}
        </if>
        
        <!-- globalId:PARAMETER_ID -->
        <if test="parameterId != null and parameterId != ''">
            and PARAMETER_ID = #{parameterId}
        </if>
    </select>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值