1、实体类中添加集合属性
private List children=new ArrayList<>();
一定要=new ArrayList<>(); 否则就等于该children没有引用,忘里面添加数据的时候会空指针的。
2、dao层中有查询所有一级节点的方法
SELECT
id,parent_id,code,name,xxx...
from
xxx
where
parent_id is null
比如这张表,一级节点的parent_id默认为null.
3、service中添加如下代码
private List treeList = new ArrayList<>(); //全局变量
@Override
public List getTree() {
//先获取到所有数据
treeList=xxxMapper.getList();
if(treeList==null) return null;
//获取到所有一级节点
List parentList = this.xxxMapper.findParentList();
List list = new ArrayList<>();
if(parentList != null){
for (int i = 0; i < parentList.size(); i++) {
list.add(recursiveTree(parentList.get(i).getId()));
}