mybaits查询结果总是少一个(与mysql查询结果不一致)问题
前言
当我们使用mybatis对数据库的多张表进行关联select操作时,返回的结果列中可能存在重复问题,这时,mybatis返回的结果集相对mysql返回的结果集而言,可能会不一致。
正文
结果集不一致的问题有多种可能,我碰到的是mybatis最终查询的结果集比mysql少一个
仔细检查mybatis的sql语句,再细细观察mysql查询出来的结果集。我发现我的问题出现在:
resultMap中id的问题
通过百度,我了解到resultMap标签中的子标签 id和result
id代表的是resultMap的主键,另一个子标签 result代表的是其属性(数据库表的字段)
注意: id是唯一标识的。
所以,我的问题在于我的多表联合查询中,查到的结果中id值重复了,所以mybatis将结果集中重复的没有显示出来。如图:
解决办法:
将resultMap中的id子标签用result代替。
意思就是将<id column="id" property="id"/>
换成 <result column="id" property="id" />
本片文章参考:
https://blog.csdn.net/SupManCantFly/article/details/106908061