• 用户、角色、权限三者多对多用hibernate的一对多注解配置


    用户、角色、权限三者多对多用hibernate的一对多注解配置

    //权限表
    @Table(name = "p")
    public class P {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "p_id", unique = true, nullable = false)
    private Integer id;
    @OneToMany(mappedBy = "p",cascade=CascadeType.ALL)
    private Set<PR> pr = new HashSet<PR>();
    /*省略所有get、set方法及其他列*/
    }
    //权限角色表
    @Entity
    @Table(name = "pr")
    public class PR {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "pr_id", unique = true, nullable = false)
    private Integer id;
    @ManyToOne
    @JoinColumn(name = "r_id")
    private R r;
    @ManyToOne
    @JoinColumn(name = "p_id")
    private P p;
    /*省略所有get、set方法及其他列*/
    }
    //角色表
    @Entity
    @Table(name = "r")
    public class R {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "r_id", unique = true, nullable = false)
    private Integer id;
    @OneToMany(mappedBy = "r",cascade=CascadeType.ALL)
    private Set<PR> pr = new HashSet<PR>();
    @OneToMany(mappedBy = "r",cascade=CascadeType.ALL)
    private Set<RU> ru = new HashSet<RU>();
    /*省略所有get、set方法及其他列*/
    }
    //角色用户关系表
    @Entity
    @Table(name = "ru")
    public class RU {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ru_id", unique = true, nullable = false)
    private Integer id;
    @ManyToOne
    @JoinColumn(name = "r_id")
    private R r;
    @ManyToOne
    @JoinColumn(name = "u_id")
    private U u;
    /*省略所有get、set方法及其他列*/
    }
    //用户表
    @Entity
    @Table(name = "u")
    public class U {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "u_id", unique = true, nullable = false)
    private Integer id;
    @OneToMany(mappedBy = "u",cascade=CascadeType.ALL)
    private Set<RU> ru = new HashSet<RU>();
    /*省略所有get、set方法及其他列*/
    }

    数据库图片示例:

    结果如上。(P《权限表》、R《角色表》、U《用户表》、PR《权限角色关系表》、RU《角色用户关系表》)

  • 相关阅读:
    阿里云ECS网站备案流程
    python学习之os.walk()
    python学习之pypandoc
    linux下的which
    python学习之range()和xrange()
    Python内置函数之repr()
    python学习之字典
    SQL基础之聚合与排序
    SQL基础教程
    lombok的安装
  • 原文地址:https://www.cnblogs.com/xiaocao1434/p/5245832.html
Copyright © 2020-2023  润新知