欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mybatis自查询递归查找子

程序员文章站 2023-11-22 14:25:34
先看一下数据库 主键id,名称product_code,父parent,和kind 设计菜单类 setter,getter Dao public interface ProductMapper { List getProductKindRelatio ......

先看一下数据库

Mybatis自查询递归查找子

 

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

设计菜单类

Mybatis自查询递归查找子

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

Mybatis自查询递归查找子