Mybatis查询返回Map

1     /**
2      * 查询产品的医保名称、省标名称
3      * @param productIds
4      * @return
5      */
6     @MapKey("productId")
7     public Map<Long,ProvinceProduct> selectCheckProductNameOpenProductDirectoryNameInMap(@Param("productIds") List<Long> productIds);
    <resultMap type="ProvinceProduct" id="ProvinceProductResult">
        <result property="productId"    column="product_id"    />
         
        <result property="openProductDirectoryName" column="open_product_directory_name"/>
              
        <result property="medicalName" column="medical_name"/>

    </resultMap>
    
    <!-- 查询医保名称、省标名称 -->
    <select id="selectCheckProductNameOpenProductDirectoryNameInMap" parameterType="list" resultMap="ProvinceProductResult">
  /* 
        select
            a.product_id,
            opp.open_product_directory_name,
            spc.medical_name,spc.product_name check_product_name

        from sys_product a
            left join sys_product_province_relation ppr on a.product_id = ppr.product_id
            left join sys_open_product_price opp        on ppr.open_product_price_id = opp.open_product_price_id
            LEFT JOIN sys_price_set sps on a.product_id=sps.product_id
            LEFT JOIN sys_price_way spw on spw.price_set_id=sps.price_set_id
            left join sys_product_check spc on a.yb_id = spc.yb_id
        WHERE spw.price_way_code=101
          
            and a.product_status !=2
            and a. product_id in
                <foreach item="productId" collection="productIds" open="(" separator="," close=")">
                    #{productId}
                </foreach>
  */


        select
        1 product_id,
        '省标名称11' open_product_directory_name,
        '医保名称11' check_product_name

        union  select
        1 product_id,
        '省标名称12' open_product_directory_name,
        '医保名称12' check_product_name

        union  select
        1 product_id,
        '省标名称13' open_product_directory_name,
        '医保名称13' check_product_name

        union  select
        2 product_id,
        '省标名称21' open_product_directory_name,
        '医保名称22' check_product_name

        union  select
        2 product_id,
        '省标名称22' open_product_directory_name,
        '医保名称22' check_product_name

        union  select
        3 product_id,
        '省标名称31' open_product_directory_name,
        '医保名称31' check_product_name

        union  select
        3 product_id,
        '省标名称32' open_product_directory_name,
        '医保名称32' check_product_name

        union  select
        3 product_id,
        '省标名称33' open_product_directory_name,
        '医保名称33' check_product_name
    </select>
返回结果:	
1==>医保名称13--省标名称13--1
2==>医保名称22--省标名称22--2
3==>医保名称33--省标名称33--3


结论:key相同时,会返回最后一条数据

 

posted @ 2022-11-21 11:27  松松敲代码  阅读(539)  评论(0编辑  收藏  举报