public static List<CmsDepartment> getListForSelect(List<CmsDepartment> topList) {
List<CmsDepartment> list = new ArrayList<CmsDepartment>();
for (CmsDepartment c : topList) {
addChildToList(list, c);
}
return list;
}
/**
* 递归将子部门加入列表
*
* @param list
* 部门容器
* @param depart
* 待添加的部门,且递归添加子部门
*/
private static void addChildToList(List<CmsDepartment> list, CmsDepartment depart) {
list.add(depart);
Set<CmsDepartment> child = depart.getChild();
for (CmsDepartment c : child) {
addChildToList(list, c);
}
}
//获取getChild数据库配置
<many-to-one name="parent" column="parent_id" class="CmsDepartment" not-null="false"></many-to-one>
<set name="child" inverse="true" cascade="delete">
<cache usage="read-write"/>
<key column="parent_id"/>
<one-to-many class="CmsDepartment"/>
</set>