Mybatis 自身关联

Eviltuzki 发布于 2015/05/27 11:50
阅读 1K+
收藏 0

Mybatis 如何实现自身关联

比如菜单类,有1个父级和多个子级

父级属性Menu menu,

子级List<Menu> menus

       <resultMap type="cn.edu.bjut.zj.mybatis.po.Menu" id="menuBean">
		<id column="id" property="id"/>
		<result column="name" property="name"/>
		<association property="menu" column="parentid" select="getMenuById" fetchType="lazy"></association>
		<!--<collection property="menus" column="id" select="getMenusByParentid" ></collection>-->
	</resultMap>
	<select id="showAllMenu" resultMap="menuBean">
		SELECT *
		FROM menu
              where parentid is null  
        </select>
	<select id="getMenuById" parameterType="int" resultMap="menuBean" >
		SELECT *
		FROM menu
		WHERE id=#{id}
	</select>
	<select id="getMenusByParentid" parameterType="int" resultMap="menuBean">
		SELECT *
		FROM menu
		WHERE parentid=#{id}
	</select>



上面的方法,如果association,collection两个同时存在,调用showAllMenu()就出现死循环溢出了。。

在Hibernate中,配置一个onetomany,一个manytoone就可以实现,在MyBatis中能实现么?

加载中
0
Eviltuzki
Eviltuzki
来个人回答一下嘛~~~
0
loyal
loyal
网上不是有很多例子么?随便找个都有吧?
0
@ccny
@ccny
select * from menu m1,menu m2 这个样子就可以了, 你这个样子不 就死循环了
@ccny
@ccny
回复 @Eviltuzki : <resultmap> <name/> <colliction> <name/> </collection> </resultMap>
@ccny
@ccny
回复 @Eviltuzki : select * from menu m1,menu m2 where m1.id=m2.parent_id
Eviltuzki
Eviltuzki
没明白。。。
返回顶部
顶部