sql:
--组织机构
create table Organization(
OrgID varchar2(36) primary key not null,--单位ID
OrgName varchar2(80) not null,--单位名称
ParentID varchar2(36) null--父单位ID
);
插入测试数据
insert into Organization(orgid,Orgname,Parentid) values('1','test1','');
insert into Organization(orgid,Orgname,Parentid) values('5','test2','1');
insert into Organization(orgid,Orgname,Parentid) values('50','test50','5');
insert into Organization(orgid,Orgname,Parentid) values('20','test20','');
insert into Organization(orgid,Orgname,Parentid) values('4','test24','20');
insert into Organization(orgid,Orgname,Parentid) values('3','test3','');
commit;
---查询全部组织,带排序
/**
* 查询全部组织,带排序
* @return
*/
public List<Organization> selectOrganizationAll() {
return sortOrganization(new ArrayList<Organization>(),orgDao.selectOrganizationAll(),"");
}
/**
* 递归完成组织排序
* @param rList 返回新的List
* @param oList 老的List
* @return
*/
public List<Organization> sortOrganization(List<Organization> rList,List<Organization> oList,String parentid){
if(null==oList)
{
return null;
}
Iterator<Organization> it = oList.iterator();
while(it.hasNext())
{
Organization org = it.next();
if(null==org.getParentid())
org.setParentid("");
if(org.getParentid().equals(parentid))
{
rList.add(org);
sortOrganization(rList,oList,org.getOrgid());
}
}
return rList;
}
/**
* 查询全部组织
* @return
*/
public List<Organization> selectOrganizationAll() {
return hibernateTemplate.find("FROM Organization");
}