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

网友投稿 414 2022-10-08


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

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

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

原因分析:

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

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

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

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

实例:

public class A

}

public class B{http://

}

@Service()

public class AImpl implements AService {

private AMapper aMapper ;

public List increTrade(Map map) {

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

return lst;

}

}

public interface AMapper {

ListincreTrade(Map map);

}

AMapper 对应的xml文件

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

List中map泛型对应mybatis的返回类型

List>在mybatis对应

resultType="java.util.HashMwZVeUMKfap"

SELECT

DATE_FORMAT( report_date, '%Y%m' ) label ,

COUNT( 0 ) value

FROM

t_smoke_detector_record

WHERE tsdr_type != "火灾告警"

GROUP BY

label

@ApiOperation(value = "按照月份统计报警条数",notes = "按照月份统计报警条数")

@GetMapping(value = "warnCountStatistics")

@ActionLog(value = "按照月份统计所有报警条数")

public List> warnCountStatistics(){

List list = smokeDetectorRecordMapper.selectWarnCountBymonths();

return list;

返回结果


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:华为OSPF与ACL综合应用实例讲解(华为ospf与bgp相互引入)
下一篇:iOS 13 绕过锁屏密码漏洞(ios是什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~