mybatis中自定义返回的map在service中使用的时候取不到值

Baymax_W 发布于 2020/07/20 17:41
阅读 101
收藏 0

框架:springboot + mybatis + oracle

使用了lombok

mapper中自定了resultMap,然后在前边使用的时候经常会取不到值

1. mapper代码如下

<resultMap id="resMap" type="HashMap">
    <result property="cou" column="cou" javaType="Integer" />
    <result property="amount" column="amount" />
</resultMap>

<select id="selDiff" resultMap="resMap">
    select
    count(1) cou, sum(abs(nvl(CASH_LR_AMT, 0) - nvl(CAPL_LR_AMT, 0))) amount
    from
    un_lr_detail
    <where>
        <choose>
            <when test="bizType == null or checkStatus == null">
                0 = 1
            </when>
            <otherwise>
                biz_type = #{bizType}
                and
                check_status != #{checkStatus}
                and
                cap_code = #{capCode}
            </otherwise>
        </choose>
    </where>
</select>

2. dao层代码

Map<String, Object> selDiff(@Param("bizType")BusTypeEnum bizType, @Param("checkStatus")CheckResultEnum checkStatus, @Param("capCode")String capCode);

 

3. dbservice

public Map<String, Object> selDiff(BusTypeEnum bizType, CheckResultEnum checkStatus, String capCode) {
    Map<String, Object> map;
    try {
        map = unLrDetailDao.selDiff(bizType, checkStatus, capCode);
        return map;
    } catch (Exception e) {
        logger.error("扫描 金额不一致汇总信息异常," + e);
        throw new TradeException(ReturnCode.update_sql_fail.toCode(),
                "扫描 金额不一致汇总信息异常");
    }
}

4. service

Map<String, Object> diffMap = iUnLrDetailDbService.selDiff(BusTypeEnum.LOAN, CheckResultEnum.NORMAL, capCode);
int diffCount = (int) diffMap.get("cou");

 

加载中
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部