战狂粗人张

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

前言:

map 数据如下 Map<String,List<Long>>.

测试代码如下:

复制代码
public void getByMap(){
        Map<String,List<Long>> params=new HashMap<String, List<Long>>();
        List<Long> orgList=new ArrayList<Long>();
        orgList.add(10000003840076L);
        orgList.add(10000003840080L);
        
        List<Long> roleList=new ArrayList<Long>();
        
        roleList.add(10000000050086L);
        roleList.add(10000012180016L);
        
        params.put("org", orgList);
        params.put("role", roleList);
        
        List<BpmDefUser> list= bpmDefUserDao.getByMap(params);
        System.out.println(list.size());
        
    }
复制代码

dao代码如下:

public List<BpmDefUser> getByMap(Map<String,List<Long>> map){
        Map<String,Object> params=new HashMap<String, Object>();
        params.put("relationMap", map);
        return this.getBySqlKey("getByMap", params);
        
    }

xml代码如下:

复制代码
<select id="getByMap" resultMap="BpmDefUser">
        
            <foreach collection="relationMap" index="key"  item="ent" separator="union">
                SELECT *
                FROM BPM_DEF_USER
                where  RIGHT_TYPE=#{key}
                and OWNER_ID in 
                <foreach collection="ent"  item="id" separator="," open="(" close=")">
                    #{id}
                </foreach>
            </foreach>
        
    </select>
复制代码

index 作为map 的key。item为map的值,这里使用了嵌套循环,嵌套循环使用ent。

 

posted on 2017-11-20 00:06  战狂粗人张  阅读(417)  评论(0编辑  收藏  举报