<resultMap id="BaseResultMap" type="com.server.bean.Menu"> <id column="id" property="id" /> <result column="url" property="url" /> <result column="path" property="path" /> <result column="parentId" property="parentId" /> <result column="enabled" property="enabled" /> </resultMap>
<select id="getAllMenus" resultMap="com.server.mapper.DepartmentMapper.BaseResultMap"> select * from t_department order by parentid </select> @Override public List<Department> getAllMenus() { List<Department> departments = menuMapper.getAllMenus(); List<Department> resultList = new ArrayList<Department>(); Map<Integer,List<Department>> map = new HashMap<Integer,List<Department>>(); for(Department department : departments) { int parentId = department.getParentId(); if(parentId == -1) { resultList.add(department); } List<Department> children = new ArrayList<Department>(); department.setChildren(children); map.put(department.getId(), children); if(map.containsKey(parentId)) { List<Department> subs = map.get(parentId); subs.add(department); } } return resultList; }