mybatis中方法返回泛型与resultType不一致

当xxxMaaper.java的方法返回值类型是List<A>,而xxxMappper.xml中对应的sql的resultType指定为B对象,这样是不会包错的(即使A与B不存在关系)


原因分析:

1.集合对象原本就是存储对象,可以是不同的对象List

2.直接处理List类型常常会出现类型转换异常,jdk5出现泛型,使得程序员向list中存放相同类型对象

3.泛型作用于编译阶段,仅为了防止类型混乱而出现,类型转换异常

4.mybatis结果集封装bean时采用反射,是在运行时进行的,此时再看泛型容易进入误区


实例:

public class A

}


public class B{

}


@Service()
public class AImpl implements AService {

private AMapper  aMapper ;

public List<B> increTrade(Map<String, Object> map) {

List<B> lst =aMapper.increTrade(map); //这里debug看到list是A类型,此时泛型误导人

return lst;
}

}


public interface AMapper {
List<B>increTrade(Map<String, Object> map);

}


AMapper 对应的xml文件

<select id="increTrade" parameterType="java.util.Map" resultType="cn.easier.admin.model.A">

//-------------

</select>


 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值