mybatis 自动去重问题及解决

mybatis 自动去重问题及解决_第1张图片

 

 

mybatis会根据标签去重,在sql查询语句中也要加上id字段查询。

如果没有在resultmap中加上标签,或者sql查询语句不加上id字段,则可能会出现去重现象(如SQL语句查询出来10条结果,但实际映射到接口如List

selectSelfAndChildByParentId(String menuId)中只有4条)

 

MyBatis的ResultMap默认是把id作为map的主键。

 

当id相同时,不管其他字段相不相同,它都当作相同的记录。那当我们想要MyBatis不去重,怎么操作呢?在POJO定义中加入一个伪id作为一标识即可

 

private int rowNo;         //在POJO添加

 

          //resultMap 中添加

 

SQL:

select @rowNo:=@rowNo+1 as rowNo,menu.icon,menu.menuname,menu.url from (SELECT @rownum:=0) a,menu

 

 

你可能感兴趣的:(mybatis 自动去重问题及解决)