递归调用需要注意的问题
/**
* 查询某个地区下属所有的区县地区
* 关联关系 bb3300 主键 bbb020(相当id) bbb023(相当于父ID)
*/
public List<Aa12> queryFirstNode2(String bb3300 ) { // 传入该市的主键
// 存放子元素的集合
ArrayList<Bb33 > childrens = new ArrayList<>();
// 根据主键查询该数据具体信息
Bb33 bb33 = bb33Mapper.selectByPrimaryKey(bb3300 );
// 根据bbb020和 bbb023查询下属的子元素信息
List<Bb33 > bb33s = bb33Mapper.selectCustom(bb33.getAaa020());
// 递归遍历子元素
for (int i=0;i<bb33s.size();i++){
List<Bb33 > bb3300s = queryFirstNode2(bb33s.get(i).getBb3300());
// 将子元素放入准备的子元素list钟
childrens.addAll(bb3300s ); // 正确写法
bb33s addAll(bb3300s ); // 错误写法,,因为bb33s作为循环的list,如果此时将子元素加入该list,则list的size会增大,循环会无限增大,所以需要新建一个childrensList来存放子元素
}
bb33s.addAll(childrens);
log.info("list 的大小为 =》"+bb33s.size() +"====>"+bb33s.toString());
return bb33s;
}