首页 > 其他分享 >mybatis collection嵌套集合

mybatis collection嵌套集合

时间:2022-09-02 16:44:50浏览次数:61  
标签:product bc bm collection 嵌套 muc mybatis id card

业务场景:商户集合嵌套卡券集合

 

 JAVA代码:

@Data
public class UserMerchantCardVo {
    /** 商户名称*/
    private String merchantName;
    /** 商户地址*/
    private String address;
    /** 商户经度*/
    private BigDecimal lng;
    /** 商户纬度*/
    private BigDecimal lat;
    /** 电话*/
    private String bossTel;
    /** 用户卡券列表*/
    private List<UserCardVo> cardList;
}

SQL:

<resultMap id="result" type="com.zhhs.app.vo.UserMerchantCardVo">
        <result property="merchantName" column="merchant_name"/>
        <result property="address" column="address"/>
        <result property="lng" column="lng"/>
        <result property="lat" column="lat"/>
        <result property="bossTel" column="boss_tel"/>
        <collection property="cardList" ofType="com.zhhs.app.vo.UserCardVo">
            <id property="id" column="id"/>
            <result property="cardName" column="card_name"/>
            <result property="cardType" column="card_type"/>
            <result property="cardTime" column="card_time"/>
            <result property="cardNumber" column="card_number"/>
            <result property="status" column="status"/>
            <result property="cardUseExplain" column="card_use_explain"/>
            <result property="cardUseProduct" column="card_use_product"/>
        </collection>
    </resultMap>

    <select id="getUserCardList" resultMap="result">
        SELECT muc.id,muc.card_id,bm.merchant_name,bm.address,bm.lng,bm.lat,bm.boss_tel,bc.card_name,bc.card_type,bc.card_time,bc.card_number,bc.card_use_explain,muc.status,
        CASE bc.card_type WHEN '通用券' THEN '全场通用' WHEN '品类券' THEN CONCAT( '限', GROUP_CONCAT( bpt.type_name ) ) ELSE CONCAT( '限', GROUP_CONCAT( bp.product_name ) ) END AS card_use_product
        FROM media_user_card muc
        LEFT JOIN base_merchant bm ON muc.merchant_id = bm.id
        LEFT JOIN base_card bc ON muc.card_id = bc.id
        LEFT JOIN media_card_product_type bcp ON bcp.card_id = bc.id
        LEFT JOIN base_product_type bpt ON bcp.product_type_id = bpt.id
        LEFT JOIN base_product bp ON bcp.product_id = bp.id
        WHERE muc.user_id = #{userId} and muc.status = #{status}
        GROUP BY muc.id
        ORDER BY muc.id desc
    </select>

 

标签:product,bc,bm,collection,嵌套,muc,mybatis,id,card
From: https://www.cnblogs.com/person008/p/16650456.html

相关文章

  • Mybatis中的数据库连接池
    mybatis中的数据库连接池目录mybatis中的数据库连接池一、前言二、为什么要使用数据库连接池1、创建一个java.sql.Connection实例对象的代价2、问题分析3、解决方案三、My......
  • MyBatis-逆向工程
    1.逆向工程正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程的。逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源......
  • MyBatis-缓存
    1.MyBatis缓存MyBatis中的缓存针对查询功能,可以将查询的数据进行缓存,再次查询相同数据时,不会从数据库中查询,直接从缓存中获取。分为一级缓存和二级缓存。2. MyBati......
  • Mybatis-plus Page<>分页失效,records返回全部
     问题:分页失效    page 是传了的,但是还是返回了全部数据。 这里需要加一个config文件 importcom.baomidou.mybatisplus.annotation.DbType;import......
  • mybatis的实体类属性不存入数据库的排除方法
    网上有很多排除方法,但是因为框架问题都不适用,姑且展示一下1.@Transient该注解只适用于hibernate框架,在实体类(pojo)属性上使用、表示数据库表中没有这个字段就忽略;2.@Table......
  • 35 | JAVA中的Collections(类似C++中的算法)
    CollectionsCollections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。注意Collections结尾多了一个s,不是Collection!我们一......
  • 2.Mybatis-常用sql
    1.Mybatis常用select语句<selectid="getRolesByParam"parameterType="java.util.HashMap"resultType="com.serlyf.system.entity.Role">SELECTsr.ROLE_IDAS......
  • 1.Mybatis-XML模板
    SELECT sr.ROLE_IDASroleId, sr.ROLE_NAMEASroleName, sr.IS_ACTIVEASisActive, sr.REMARKASremark, sr.CREATE_DATETIMEAScreateDatetime, CON......
  • Parameter ‘MP_OPTLOCK_VERSION_ORIGINAL‘ not found. Available parameters are [p
      不仅仅要加这个注解,还要在mybatisConfig里面配置一个bean ......
  • 使用嵌套的 setTimeout 值得吗?
    使用嵌套的setTimeout值得吗?有许多服务需要在某个定义的时间之后或在定义的时间间隔内执行。为了在一段时间后运行某些功能,我们使用setTimeout获取在定义时间之后执......