之前做递归的时间写了那么多java代码发现根本不必要,直接sql就能搞定,直接上代码。
数据:根据parentId查出id,然后把id赋值给parentId,在查处本来parentId下面有哪些级别的数据。
实体类:这里关键是id,和父级parentId有关联关系。另外加一个children,list元素是本实体类。
- /**
- * 部门实体
- */
- public class Department implements Serializable {
- private Integer id;
- private String name;
- private Integer parentId;
- private String depPath;
- private Boolean enabled;
- private Boolean isParent;
- private List<Department> children;// 子部门
- }
复制代码 dao层:这里传的是父级parentId
- /**
- * mapper接口
- */
- List<Department> getAllDepartments(Integer parentId);
复制代码 xml:
- <!-- 通用查询映射结果 -->
- <resultMap id="BaseResultMap" type="com.cdh.server.pojo.Department">
- <id column="id" property="id"/>
- <result column="name" property="name"/>
- <result column="parentId" property="parentId"/>
- <result column="depPath" property="depPath"/>
- <result column="enabled" property="enabled"/>
- <result column="isParent" property="isParent"/>
- </resultMap>
- <!-- 相当于id=-1 查询的结果id,再用这个id调用自己方法查询 -->
- <resultMap id="DepartmentMap" type="com.cdh.server.pojo.Department" extends="BaseResultMap">
- <collection
- property="children"
- ofType="com.cdh.server.pojo.Department"
- select="com.cdh.server.mapper.DepartmentMapper.getAllDepartments"
- column="id">
- </collection>
- </resultMap>
- <!--查询所有部门-->
- <select id="getAllDepartments" resultMap="DepartmentMap">
- select id, name, parentId, depPath, enabled, isParent
- from t_department
- where parentId = #{parentId}
- </select>
复制代码 结果展示:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |