MyBatisPlus 中的 resultMap 使用

2021/8/3 23:36:08

本文主要是介绍MyBatisPlus 中的 resultMap 使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

  1. 想让数据库返回 SkuItemSaleAttrVo 实体数据

    @ToString
    @Data
    public class SkuItemSaleAttrVo {
    
        private Long attrId;
        private String attrName;
        private List<AttrValueWithSkuIdVo> attrValues;
    }
    
    @Data
    @ToString
    public class AttrValueWithSkuIdVo {
    
        private String attrValue;
        private String skuIds;
    }
    
  2. 定义Mapper

    List<SkuItemSaleAttrVo> getSaleAttrsBySpuId(@Param("spuId") Long spuId);
    
  3. 定义Dao.xml

    <resultMap id="skuItemSaleAttrVo" type="com.feng.mall.product.vo.SkuItemSaleAttrVo">
        <result column="attr_id" property="attrId"></result>
        <result column="attr_name" property="attrName"></result>
        <collection property="attrValues" ofType="com.feng.mall.product.vo.AttrValueWithSkuIdVo">
            <result column="attr_value" property="attrValue"></result>
            <result column="sku_ids" property="skuIds"></result>
        </collection>
    </resultMap>
    
    <select id="getSaleAttrsBySpuId" resultMap="skuItemSaleAttrVo">
        select ssav.attr_id,
               ssav.attr_name,
               ssav.attr_value,
               group_concat(distinct info.sku_id) sku_ids
        from pms_sku_info info
                 left join pms_sku_sale_attr_value ssav
                           on ssav.sku_id = info.sku_id
        where info.spu_id = #{spuId}
        group by ssav.attr_id, ssav.attr_name, ssav.attr_value
    </select>
    


这篇关于MyBatisPlus 中的 resultMap 使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程