mybatis之collection实现递归查询级联数据
2023-06-13 09:13:57 时间
mybatis之collection实现递归查询级联数据
数据库结构:
mbatis mapper文件:
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.xiepanpan.gmall.pms.entity.ProductCategory">
<id column="id" property="id" />
<result column="parent_id" property="parentId" />
<result column="name" property="name" />
<result column="level" property="level" />
<result column="product_count" property="productCount" />
<result column="product_unit" property="productUnit" />
<result column="nav_status" property="navStatus" />
<result column="show_status" property="showStatus" />
<result column="sort" property="sort" />
<result column="icon" property="icon" />
<result column="keywords" property="keywords" />
<result column="description" property="description" />
</resultMap>
<resultMap id="ExtendResultMap"
type="com.xiepanpan.gmall.vo.product.PmsProductCategoryWithChildrenItem"
extends="BaseResultMap">
<collection property="children" select="listCategoryWithChildren"
column="id"></collection>
<!--<association property=""-->
</resultMap>
<!--缓存-->
<!--List<PmsProductCategoryWithChildrenItem> listCatelogWithChilder(Integer i);-->
<select id="listCategoryWithChildren" resultMap="ExtendResultMap">
select * from pms_product_category where parent_id=#{i}
</select>
PmsProductCategoryWithChildrenItem 实体类 :
import com.xiepanpan.gmall.pms.entity.ProductCategory;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
*/
@Data
public class PmsProductCategoryWithChildrenItem extends ProductCategory implements Serializable {
private List<ProductCategory> children;
}
ProductCategory实体类 :
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* <p>
* 产品分类
* </p>
*
* @author xiepanpan
* @since 2019-12-06
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("pms_product_category")
@ApiModel(value="ProductCategory对象", description="产品分类")
public class ProductCategory implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "上机分类的编号:0表示一级分类")
@TableField("parent_id")
private Long parentId;
@TableField("name")
private String name;
@ApiModelProperty(value = "分类级别:0->1级;1->2级")
@TableField("level")
private Integer level;
@TableField("product_count")
private Integer productCount;
@TableField("product_unit")
private String productUnit;
@ApiModelProperty(value = "是否显示在导航栏:0->不显示;1->显示")
@TableField("nav_status")
private Integer navStatus;
@ApiModelProperty(value = "显示状态:0->不显示;1->显示")
@TableField("show_status")
private Integer showStatus;
@TableField("sort")
private Integer sort;
@ApiModelProperty(value = "图标")
@TableField("icon")
private String icon;
@TableField("keywords")
private String keywords;
@ApiModelProperty(value = "描述")
@TableField("description")
private String description;
}
查询结果:
相关文章
- spring源码剖析(八)spring整合mybatis原理
- 求求你们了,MyBatis 批量插入别再乱用 foreach 了,5000 条数据花了 14 分钟。。
- 求求你们了,MyBatis 批量插入别再乱用 foreach 了,5000 条数据花了 14 分钟。。
- 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项
- mybatis 分页查询避免两次查询同时返回总数和数据
- 记录mybatis分页查询失败[通俗易懂]
- MyBatis框架:第十章:mybatis缓存
- mybatis返回两个字段数据_java接口接收json数据
- mybatis 为什么要设置jdbcType
- MyBatis-Plus 代码生成器!
- mybatis 原理[通俗易懂]
- 横空出世!MyBatis-Plus同款ES ORM框架,用起来够优雅!
- MyBatis-Plus 常用注解
- Mybatis 流式读取大量MySQL数据
- SQL数据分表Mybatis Plus动态表名优方案
- mybatis 处理数组类型及使用Json格式保存数据 JsonTypeHandler and ArrayTypeHandler详解编程语言
- mybatis 详解(一)——JDBC编程语言
- Java数据持久层框架 MyBatis之API学习九(SQL语句构建器详解)编程语言
- Mybatis Update操作 返回值修改为受影响条数详解编程语言
- Mybatis select标签以及使用Map接口和Java Bean传递多个参数
- Mybatis操作MySQL存储过程实现数据库交互(mybatis调用mysql存储过程)
- MyBatis与Oracle存储过程互通:简化开发,提高效率(mybatis调用oracle存储过程)