开发者社区> Mr.Elliot> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

不设外键:来看看上次预留的连接查询接口

简介: postman接口测试 你见过一个类中注入很多的bean吗?比如说像这样 image 这个是接着上次的文章,虽然也是用程序实习关联的一种解决方案 再来看看Controller中的方法 (service中的方法就是上次文章中的方法...
+关注继续查看
img_9a887152c99b805607e787f205494995.png
postman接口测试

你见过一个类中注入很多的bean吗?比如说像这样


img_01861ce0a75047403e10420dd3e0d615.png
image

这个是接着上次的文章,虽然也是用程序实习关联的一种解决方案
再来看看Controller中的方法 (service中的方法就是上次文章中的方法体中的方法)

/**
     * 查询该用户下所有的权限
     */
    @RequestMapping("/queryauth")
    public List<String> queryUserAuthorities(User user){
        UserVo userVo = userService.queryAuth(user);
        List<String> authorityList = new ArrayList<>();
        HashSet<RoleVo> roleVos = userVo.getRoleVos();
        Iterator<RoleVo> iterator = roleVos.iterator();
        while (iterator.hasNext()){
            RoleVo next = iterator.next();
            HashSet<AuthorityVo> authorityVos = next.getAuthorityVos();
            Iterator<AuthorityVo> it = authorityVos.iterator();
            while (it.hasNext()){
                AuthorityVo authorityVo = it.next();
                authorityList.add(authorityVo.getAname());
            }
        }
        return authorityList;
    }

看起来是不是有点南辕北辙的感觉了,所以上次预留的连接查询的接口就有用了(这里有个细节就是在创建意义上的中间表的时候,具体请去查看上一篇文章)

测试结果:


img_ef32a8e4b2c1cf7752da8016542818b2.png
postman

Controller

 @RequestMapping("/selectauth")
    public List<Authority> selectUserAuthorities(User user){
        List<Authority> authorityList = userService.selectUserAuth(user);
        return authorityList;
    }

Service

 @Override
    public List<Authority> selectUserAuth(User user) {
        Integer uid = user.getUid();
        List<Authority> authorityList = new ArrayList<>();
        List<Integer> aids = userRoleMapper.selectUserAuth(uid);
        for (Integer id:aids
             ) {
            Authority authority = authorityMapper.getAuthorityById(id);
            authorityList.add(authority);
        }
        return authorityList;
    }

Mapper:

<select id="selectUserAuth" parameterType="INTEGER" resultType="integer">
        select t_role_authority.aid from t_user_role inner JOIN
       t_role_authority on t_user_role.rid = t_role_authority.rid where uid=#{uid};
    </select>

一样的实现了 查询该用户下拥有的所有权限

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
查出与当前系统时间间隔30分钟前后的数据
查出与当前系统时间间隔30分钟前后的数据
0 0
什么是回表查询
这种查询就必须先在索引文件中找到name为小张的索引节点,很明显这个节点里面只有id,因为这张表只有主键索引,再根据id去数据文件查找具体数据
0 0
修改表字段长度的操作,对业务是否有影响?
前两天测试同学问了一个问题,表中某一个字段,需要改一下长度,对业务是否会有影响? 可能隐约之中,我们觉得没影响,但又好像有影响,究竟有何影响,我们从实验来看最科学。
953 0
弃用数据库自增ID,曝光一下我自己用到的解决方法 (转发)
在平时的项目开发中,我相信有很大一批人都在用这个数据库自增ID,用数据库自增ID有利也有弊。     优点:节省时间,根本不用考虑怎么来标识唯一记录,写程序也简单了,数据库帮我们维护着这一批ID号。
494 0
DTS开发记录(8)-- 主键的影响
对于数据源向同一数据目标导出(我们称之为“数据汇集”)和增量导出来说,对主键的处理也是一个大的挑战。    我先定义一下在本DTS系统中主键(PrimaryKey)的含义:PrimaryKey 表示主键或联合主键,PrimaryKey并不是针对某个数据库表的,而是针对某个特定的DataMapping而言的,它用于在数据迁移过程中来唯一确定数据源或数据目标中每条记录。
549 0
怎样查询一个表的最后更新时间?
http://www.itpub.net/466851.html select * from sys.dba_tab_modifications
416 0
+关注
Mr.Elliot
技术爱好者
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载