Mybatis自查询递归查找子

先看一下数据库

 

主键id,名称product_code,父parent,和kind

设计菜单类

setter,getter

Dao

public interface ProductMapper {

List<TProductKindRelationDto> getProductKindRelationDto();
}

mapper.xml

<mapper namespace="com.adv.biz.dao.ProductMapper" >
<resultMap id="BaseResultMap" type="com.adv.biz.dto.TProductKindRelationDto" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="product_code" property="productCode" jdbcType="VARCHAR" />
<result column="parent" property="parent" jdbcType="VARCHAR" />
<result column="kind" property="kind" jdbcType="VARCHAR" />
<collection property="childList" ofType="com.adv.biz.entity.TProductKindRelation" column="product_code" select="findByParent">
</collection>
</resultMap>


<select id="getProductKindRelationDto" resultMap="BaseResultMap" >
select t.id,t.kind,t.parent,t.product_code from t_product_kind_relation t where t.parent is null or t.parent = ''
</select>

<select id="findByParent" resultType="com.adv.biz.dto.TProductKindRelationDto">
select t.id,t.kind,t.parent,t.product_code from t_product_kind_relation t where t.parent=#{product_code}
</select>

</mapper>

其中findByParent会查询到所有的父菜单,

 

而在getProductKindRelationDto中我们定义了如何去查找子菜单,调用findByParent

 

posted @ 2018-09-18 14:38  长东  阅读(908)  评论(0编辑  收藏  举报