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>