mybatis 自动去重问题及解决

 

 

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

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

 

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

 

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

 

private int rowNo;         //在POJO添加

 

<id property="rowNo" column="rowNo"/>          //resultMap 中添加

 

SQL:

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

 

 

相关文章:

  • 2021-11-26
  • 2022-02-03
  • 2021-05-31
  • 2021-06-19
  • 2021-11-16
  • 2022-12-23
  • 2022-12-23
  • 2021-04-28
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2023-03-30
  • 2022-12-23
  • 2021-07-22
相关资源
相似解决方案