码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis中递归查询

时间:2018-09-15 19:23:17      阅读:841      评论:0      收藏:0      [点我收藏+]

标签:util   vat   interface   com   org   parameter   dao   技术分享   src   

技术分享图片

业务是这样的,一个商品有不同的规格,所有规格选择完后会出现价格,这些规格我是放在一个表里,父子级关系。mybatis做的时候传过来一个商品Id.然后根据商品id去找所有的规格。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.***.abc.dao.GoodsSpecCategoryMapper" >
  <resultMap id="BaseResultMap" type="com.***.abc.bean.GoodsSpecCategory" >
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="spec_name" property="specName" jdbcType="VARCHAR" />
    <result column="pid" property="pid" jdbcType="BIGINT" />
    <result column="goods_info_id" property="goodsInfoId" jdbcType="BIGINT" />
    <collection property="categoryList" ofType="GoodsSpecCategory" javaType="java.util.List" column="id" select="getById"/>
  </resultMap>

  <!--根据父类id查找其子类别-->
  <select id="getById" resultMap="BaseResultMap" parameterType="long">
        SELECT *
        FROM goods_spec_category
        WHERE pid = #{id}
    </select>

    <!--查找所有类别(递归)-->
    <select id="querySpecCategoryListById" resultMap="BaseResultMap" parameterType="long">
      SELECT *  //这里查出来的ID会作为getById的Id去查询子类
      FROM goods_spec_category
      WHERE goods_info_id = #{infoId} AND pid IS NULL    //infoId是传过来的商品id

    </select>

</mapper>

商品表的xml里的

<resultMap id="baseResultMap" type="com.***.abc.dto.GoodsInfoDto" >
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="goods_type" property="goodsType" jdbcType="VARCHAR" />
      <collection property="goodsSpecCategory" fetchType="eager" ofType="com.***.abc.bean.GoodsSpecCategory" column="id"
                  javaType="ArrayList" select="com.***.abc.dao.GoodsSpecCategoryMapper.querySpecCategoryListById"/>

  </resultMap>
GoodsSpecCategoryMapper中添加接口
public interface GoodsSpecCategoryMapper {

     public List querySpecCategoryListById(@Param("infoId") Long infoId);

}

 

mybatis中递归查询

标签:util   vat   interface   com   org   parameter   dao   技术分享   src   

原文地址:https://www.cnblogs.com/javage/p/9651813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!