zoukankan      html  css  js  c++  java
  • 用户、角色、权限三者多对多用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《角色用户关系表》)

  • 相关阅读:
    又到黄金季节,该跳槽吗?怎么跳?
    分布式事务 6 个技术方案
    15 个 MyBatis 技巧,赶紧收藏吧!
    你的工资被倒挂了吗
    终于知道 Java agent 怎么重写字节码了
    每天的工作,你腻了吗?
    10 分钟轻松学会 Jackson 反序列化自动适配子类
    SpringMVC异步处理的 5 种方式
    Linux Cron 定时任务
    人类简史、软件架构和中台
  • 原文地址:https://www.cnblogs.com/xiaocao1434/p/5245832.html
Copyright © 2011-2022 走看看