利用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

相關文章
相關標籤/搜索