多对多,依据用户id,查问用户的多个角色,同时查问每个角色下对应的菜单, 同时过滤出雷同的菜单

用户<-->角色, 角色<-->菜单, 多对多的关系

个别状况下, 菜单不过滤, 前端框架主动反复的数据会笼罩

办法一

@RequestMapping("getMenuByUserid")    public List<MenuRoleView> getMenuByUserid(HttpServletRequest request){                int userid = (int) request.getSession().getAttribute("userid");        //依据userid查问登录用户的角色信息        UserRoleViewExample userRoleViewExample=new UserRoleViewExample();        Criteria criteria2 = userRoleViewExample.createCriteria();        userRoleViewMapper.selectByExample(userRoleViewExample);        criteria2.andUseridEqualTo(userid);        List<UserRoleView> roleList = userRoleViewMapper.selectByExample(userRoleViewExample);        List<Integer> roleIds=new ArrayList<Integer>();//角色id的汇合        for (UserRoleView userRoleView : roleList) {            roleIds.add(userRoleView.getRoleid());        }                        //依据userid的汇合,查问        MenuRoleViewExample menuRoleViewExample=new MenuRoleViewExample();        com.bw.entity.MenuRoleViewExample.Criteria criteria = menuRoleViewExample.createCriteria();        criteria.andRoleidIn(roleIds);        List<MenuRoleView> menuList = menuRoleViewMapper.selectByExample(menuRoleViewExample);        return menuList;    }

办法二

@RequestMapping("getMenuByUserid2")    public List<MenuRoleView> getMenuByUserid2(HttpServletRequest request){                Integer userid = (Integer) request.getSession().getAttribute("userid");        if(userid==null){            return new ArrayList();        }        List<MenuRoleView> menuList = menuRoleViewMapper.getMenuByUserid2(userid);        //工具类        HashMap<Integer, MenuRoleView> map=new HashMap<Integer, MenuRoleView>();        for (MenuRoleView menuRoleView : menuList) {            map.put(menuRoleView.getMenuid(), menuRoleView);        }        Collection<MenuRoleView> values = map.values();        menuList=new ArrayList<MenuRoleView>(values);        return menuList;    }