一个树结构的对象,层次不限.可用户自定义增加 如
public class Org{
private String id;
private String name;
private List<Org> children;
}
在查询的时候直接封装成一个树结构.
List<Org> list = this.sqlFind(sb.toString(), Org.class, params.toArray());//查询出所有部门id
List<Org> result = new ArrayList<>();
Map<String, Org> map = new LinkedHashMap(); //id,org
for(Org o : list){
o = get(o.getId());//获取org对象
o.setChildren(new ArrayList<Org>());
map.put(o.getId(), o);
Org parent = null;
}
for(String orgId : map.keySet()){
//设置父子关系 children
Org org = map.get(orgId);
Org parent = org.getParent();
if(parent != null)
parent.getChildren().add(org);
result.add(org);
}
使用以下则可取出所有org对象放到集合中
List<OutputSummaryVo> retVoList = new ArrayList<>(); //结果
while(!orgs.isEmpty()){
Org org = orgs.remove(0);
OrgVo vo = new OrgVo();
vo.setId(org.getId());
vo.setName(org.getName());
retVoList.add(vo);
orgs.addAll(org.getChildren());
}