java较复杂的多对多映射转换

要求:

1,可以根据一个用户找到该用户对应的所有角色以及每一个角色对应的所有权限信息
2,可以根据一个角色找到该角色下的所有权限以及拥有此角色的全部用户信息
3,可以根据一个权限找到具备有此权限的所有用户信息

分析:

根据1可以得出用户类与角色类相关,角色类与权限类相关
根据2可以得出角色类与权限类相关,角色类与用户类相关
根据3权限类与用户类相关

用到了四个类;

Users3类:存储用户信息
Permissions3类:存储权限信息
Role3类:存储角色信息
JavaDemo类:程序入口
Users3类代码如下
​
package test0612; 

/**
 * description : 复杂多对多映射转换
 * 可以根据一个用户找到该用户对应的所有角色以及每一个角色对应的所有权限信息 //可以得出用户类与角色类相关,角色类与权限类相关
 * 可以根据一个角色找到该角色下的所有权限以及拥有此角色的全部用户信息 //可以得出角色类与权限类相关,角色类与用户类相关
 * 可以根据一个权限找到具备有此权限的所有用户信息 //权限类与用户类相关
 * @author luNan
 * @date 2023-04-11 23:01
 */
public class Users3 {
    private String uid  ;
    private String uname ;
    private Role3 role3 [] ;
    public Users3(String uid ,String uname ){
        this.uid = uid ;
        this.uname = uname ;
    }


    public Role3[] getRole3() {
        return this.role3;
    }

    public void setRole3(Role3[] role3) {
        this.role3 = role3;
    }

    public String getInfo(){
        return "Users3:{uid= \'"+this.uid+"\',uname=\'"+this.uname+"\'}";
    }
}

​
Permissions3类代码如下
​
package test0612;

/**
 * description : 复杂多对多映射转换
 * 可以根据一个用户找到该用户对应的所有角色以及每一个角色对应的所有权限信息
 * 可以根据一个角色找到该角色下的所有权限以及拥有此角色的全部用户信息
 * 可以根据一个权限找到具备有此权限的所有用户信息
 * 权限
 * @author luNan
 * @date 2023-04-11 23:04
 */
public class Permissions3 {
    private String pid  ;
    private String prid ;
    private String pname ;
    private Users3 users3 [] ;

    public Permissions3(String pid ,String prid,String pname ){
        this.pid = pid ;
        this.prid = prid ;
        this.pname =pname ;
    }

    public Users3[] getUsers3() {
        return this.users3;
    }

    public void setUsers3(Users3[] users3) {
        this.users3 = users3;
    }



    public String getInfo(){
        return "Permissions3:{pid=\'"+this.pid+"\'," +
                "prid=\'"+this.prid+"\'," +
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值