概述
通过mybatis递归查询部门树Tree
Association与Collection
Association元素处理“has-one”(一对一)这种类型关系。联合映射与其它的结果集映射工作方式差不多,如:一个 user 有 一个 role。 指定property、column、javaType(通常MyBatis会自动识别)、jdbcType(如果需要)、typeHandler。
collection表示“一对多“ 部门树是一个部门对应多个子部门。
区别
association和collection都是用来关联另一个表的数据,区别就是用来关联对象的封装的(一对一),而collection是用来关联集合封装的(一对多)。
Property:指定要关联的属性名
Select:设定要继续引用的查询,namespace+id
Column:查询时需要传递的列
举个例子,比如通过查询酒店,查出该酒店的城市,是一个城市对应一个酒店采用association。 而查询一个城市的酒店,是一对多的采用collection。
<!--注意:BaseResultMap 就是的entity对应关系这里的children 的ofType还是 Department实体 , column="id" 就是实体类的 id-->
<resultMap id="DeptWithChildren" type="cn.com.model.Department"
extends="BaseResultMap">
<collection property="children" ofType="cn.com.model.Department" column="id" select="cn.com.mapper.DepartmentMapper.getAllDeptsByPId" />
</resultMap>
<!-- 查询pid 是controller传递的参数,返回 department 实体的集合-->
<select id="getAllDeptsByPId" resultMap="DeptWithChildren">
select
*
from department where pid=#{pid};
</select>
这就是通过mybatis自己内部的递归循环查询,实现了mysql语句的递归循环。希望能帮到有需要的小伙伴。
最后
以上就是传统草莓为你收集整理的通过mybatis递归查询部门树Tree的全部内容,希望文章能够帮你解决通过mybatis递归查询部门树Tree所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复