利用mybatis查询两级树形菜单

遇到这样一个须要,菜单对象Module,分为主级菜单跟子级菜单,如今想查询出来拼成一个树。java

开始想直接查出来list而后再手动转,发现这样也不太方便,以为这个挺适合交给mybatis来完成mybatis

类主要属性以下图:code

public class Module extends TreeEntity<Module> {

	private String name;		// 名称
	private String type;		// 类型
	private Module parent;		// 父级
	private List<Module> children; //子菜单
}

查询语句是对象

SELECT a.id,
		a.name,
		b.id as id1,
		b.name as name1
FROM
`bd_prj_module` a
JOIN 	`bd_prj_module` b on a.id = b.parent_id  
ORDER BY a.sort,b.sort

映射文件是it

<resultMap id="ModuleResultMap" type="com.zt.modules.prj.entity.Module">
   <id column="id" property="id" jdbcType="VARCHAR" />
   <result column="name" property="name" jdbcType="VARCHAR"/>
   <collection property="children" ofType="com.zt.modules.prj.entity.Module">
      <id column="id1" property="id" jdbcType="VARCHAR"/>
      <id column="name1" property="name" jdbcType="VARCHAR"/>
   </collection>
</resultMap>

缺点是不支持三级菜单,若是有更方便的方法,烦请告知。io

相关文章
相关标签/搜索