• 一对多和多对多


    一个组织拥有多个用户,一个组织有多个角色,一个角色有多个组织

    package com.eshore.ismp.permission.model;
    
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
    
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinTable;
    import javax.persistence.ManyToMany;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.persistence.Transient;
    
    @Entity
    @SuppressWarnings("serial")
    @Table(name="SYS_ORGANIZATION")
    public class SysOrganization implements Serializable{
    	private Long id;
    	private String nodeId;
    	private int state;
    	private String name;
    	private String description;
    	private String phone;
    	private String email;
    	private Date createTime;
    	private Date updateTime;
    	
    	private List<Long> roleIds = new ArrayList<Long>();
    	
    	private Set<SysRole> roles = new HashSet<SysRole>(0);
    	private Set<SysUserB> users = new HashSet<SysUserB>(0);
    	
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id", unique = true, nullable = false, length = 32)
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	
    	@Column(name="node_id")
    	public String getNodeId() {
    		return nodeId;
    	}
    	public void setNodeId(String nodeId) {
    		this.nodeId = nodeId;
    	}
    	
    	@Column(name="state")
    	public int getState() {
    		return state;
    	}
    	public void setState(int state) {
    		this.state = state;
    	}
    	@Column(name="name")
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	@Column(name="description")
    	public String getDescription() {
    		return description;
    	}
    	public void setDescription(String description) {
    		this.description = description;
    	}
    	
    	@Column(name="phone")
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	@Column(name="email")
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	@Column(name="create_time")
    	public Date getCreateTime() {
    		return createTime;
    	}
    	public void setCreateTime(Date createTime) {
    		this.createTime = createTime;
    	}
    	@Column(name="update_time")
    	public Date getUpdateTime() {
    		return updateTime;
    	}
    	public void setUpdateTime(Date updateTime) {
    		this.updateTime = updateTime;
    	}
    	@ManyToMany(fetch = FetchType.LAZY)
    	@JoinTable(name = "SYS_ORGANIZATION_ROLE", schema = "", joinColumns = { @JoinColumn(name = "organization_id", nullable = false, updatable = false) }, 
               inverseJoinColumns = { @JoinColumn(name = "role_id", nullable = false, updatable = false) }) public Set<SysRole> getRoles() { return roles; } public void setRoles(Set<SysRole> roles) { this.roles = roles; } @OneToMany(fetch = FetchType.LAZY, mappedBy = "organization", cascade = CascadeType.ALL) public Set<SysUserB> getUsers() { return users; } public void setUsers(Set<SysUserB> users) { this.users = users; } @Transient public List<Long> getRoleIds() { return roleIds; } public void setRoleIds(List<Long> roleIds) { this.roleIds = roleIds; } }

    USER

    package com.model;
    
    import java.io.Serializable;
    import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinTable;
    import javax.persistence.ManyToMany;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
    import javax.persistence.Transient;
    
    @Entity
    @SuppressWarnings("serial")
    @Table(name="SYS_USER")
    public class SysUser implements Serializable{
    	private Long id; //ID
    	private String loginName; //登录名
    	private String name; //名称
    	private String password; //密码
    	private Long nodeId;//节点
    	private SysOrganization organization; // 所属组织
    	private String phone; //电话
    	private String mobilePhone; //手机
    	private String email; //邮箱
    	private String description; //描述
    	private String creatorId; //创建人
    	private Date createTime; // 创建时间
    	private Date updateTime; //更新时间
    	private Set<String> roleIds; // 角色ID
    	
    	private int type; // 类型  0 ismp-b ,1 ismp-hb,2 ismp-yh
    	private String roleIdS; //角色ID
    	private String orgName; //组织名
    	private String nodeName; //节点名
    	private Set<SysRole> roles = new HashSet<SysRole>(0); // 角色ID
    	
    	private Long orgId;//组织ID
    	
    	
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id", unique = true, nullable = false, length = 32)
    	public Long getId() {
    		return id;
    	}
    	
    	public void setId(Long id) {
    		this.id = id;
    	}
    	
    	@Column(name="name")
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	@Column(name="type")
    	public int getType() {
    		return type;
    	}
    	public void setType(int type) {
    		this.type = type;
    	}
    	
    	@Column(name = "description", unique = false, nullable = true, insertable = true, updatable = true, length = 255)
    	public String getDescription() {
    		return description;
    	}
    	public void setDescription(String description) {
    		this.description = description;
    	}
    	@Column(name = "node_id", unique = false, nullable = true, insertable = true, updatable = true)
    	public Long getNodeId() {
    		return nodeId;
    	}
    	public void setNodeId(Long nodeId) {
    		this.nodeId = nodeId;
    	}
    	@Column(name = "create_id", unique = false, nullable = true, insertable = true, updatable = true, length = 20)
    	public String getCreatorId() {
    		return creatorId;
    	}
    	public void setCreatorId(String creatorId) {
    		this.creatorId = creatorId;
    	}
    	@Column(name = "password", unique = false, nullable = true, insertable = true, updatable = true, length = 255)
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	
    	@ManyToOne(fetch = FetchType.LAZY)
    	@JoinColumn(name = "organization_id")
    	public SysOrganization getOrganization() {
    		return organization;
    	}
    	public void setOrganization(SysOrganization organization) {
    		this.organization = organization;
    	}
    	@Column(name = "phone", unique = false, nullable = true, insertable = true, updatable = true, length = 20)
    	public String getPhone() {
    		return phone;
    	}
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    	@Column(name = "mobile_phone", unique = false, nullable = true, insertable = true, updatable = true, length = 20)
    	public String getMobilePhone() {
    		return mobilePhone;
    	}
    	public void setMobilePhone(String mobilePhone) {
    		this.mobilePhone = mobilePhone;
    	}
    	@Column(name = "email", unique = false, nullable = true, insertable = true, updatable = true, length = 60)
    	public String getEmail() {
    		return email;
    	}
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	
    	@Column(name = "login_name", unique = false, nullable = true, insertable = true, updatable = true)
    	public String getLoginName() {
    		return loginName;
    	}
    	public void setLoginName(String loginName) {
    		this.loginName = loginName;
    	}
    	
    	@Column(name = "create_time", unique = false, nullable = true, insertable = true, updatable = true)
    	public Date getCreateTime() {
    		return createTime;
    	}
    	public void setCreateTime(Date createTime) {
    		this.createTime = createTime;
    	}
    	
    	@Column(name = "update_time", unique = false, nullable = true, insertable = true, updatable = true)
    	public Date getUpdateTime() {
    		return updateTime;
    	}
    	
    	public void setUpdateTime(Date updateTime) {
    		this.updateTime = updateTime;
    	}
    	
    	
    	@Transient
    	public Set<String> getRoleIds() {
    		return roleIds;
    	}
    	public void setRoleIds(Set<String> roleIds) {
    		this.roleIds = roleIds;
    	}
    	@Transient
    	public String getRoleIdS() {
    		return roleIdS;
    	}
    	public void setRoleIdS(String roleIdS) {
    		this.roleIdS = roleIdS;
    	}
    	@Transient
    	public String getOrgName() {
    		
    		if(organization!=null){
    			return organization.getName();
    		}
    		return orgName;
    	}
    	public void setOrgName(String orgName) {
    		this.orgName = orgName;
    	}
    	@Transient
    	public String getNodeName() {
    		return nodeName;
    	}
    	public void setNodeName(String nodeName) {
    		this.nodeName = nodeName;
    	}
    	@ManyToMany(fetch = FetchType.LAZY)
    	@JoinTable(name = "SYS_USER_ROLE", schema = "", joinColumns = { @JoinColumn(name = "user_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "role_id", nullable = false, updatable = false) })
    	public Set<SysRole> getRoles() {
    		return roles;
    	}
    	public void setRoles(Set<SysRole> roles) {
    		this.roles = roles;
    	}
    	
    	
    	@Transient
    	public Long getOrgId() {
    		return orgId;
    	}
    	public void setOrgId(Long orgId) {
    		this.orgId = orgId;
    	}
    	@Override
    	public String toString() {
    		return "SysUser [loginName=" + loginName + ", createTime=" + createTime
    				+ "]";
    	}
    	
    }
    

    SYSROLE

    package com.model;
    
    import java.io.Serializable;
    import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;
    
    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinTable;
    import javax.persistence.ManyToMany;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
    import javax.persistence.Transient;
    
    
    @Entity
    @SuppressWarnings("serial")
    @Table(name="SYS_ROLE")
    public class SysRole implements Serializable{
    	private Long id; //ID
    	private String name; //名称
    	private int type;//类型 0 -B, 1-HB,2-YH
    	
    	private String createrName;//创建人
    	
    	private String description; //描述
    	private Date createTime; //创建时间
    	private Date updateTime; //更新时间
    	
    	private Long[] resourceIds;
    	private Set<SysUserRole> userRoles = new HashSet<SysUserRole>(0);
    //	private Set<SysUser> users = new HashSet<SysUser>(0); //关联用户
    //	private Set<SysOrganization> organizations = new HashSet<SysOrganization>(0); //管理组织
    	private Set<SysResource> resources = new HashSet<SysResource>(0); //管理权限
    	
    	@Id
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	@Column(name = "id", unique = true, nullable = false, length = 32)
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	
    	@Column(name="name")
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    	
    	@Column(name="type")
    	public int getType() {
    		return type;
    	}
    	public void setType(int type) {
    		this.type = type;
    	}
    	
    	@Column(name="creater_name")
    	public String getCreaterName() {
    		return createrName;
    	}
    	public void setCreaterName(String createrName) {
    		this.createrName = createrName;
    	}
    	@Column(name="description")
    	public String getDescription() {
    		return description;
    	}
    	public void setDescription(String description) {
    		this.description = description;
    	}
    	
    	
    	@Column(name="create_time")
    	public Date getCreateTime() {
    		return createTime;
    	}
    	public void setCreateTime(Date createTime) {
    		this.createTime = createTime;
    	}
    	@Column(name="update_time")
    	public Date getUpdateTime() {
    		return updateTime;
    	}
    	public void setUpdateTime(Date updateTime) {
    		this.updateTime = updateTime;
    	}
    	
    	
    	
    	/*
    	@ManyToMany(fetch = FetchType.LAZY)
    	@JoinTable(name = "SYS_USER_ROLE", schema = "", joinColumns = { @JoinColumn(name = "role_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "user_id", nullable = false, updatable = false) })
    	public Set<SysUser> getUsers() {
    		return users;
    	}
    	public void setUsers(Set<SysUser> users) {
    		this.users = users;
    	}
    	*/
    	
    	@OneToMany(fetch = FetchType.LAZY)
    	@JoinColumn(name="role_id",updatable = false)
        public Set<SysUserRole> getUserRoles() {
            return userRoles;
        }
    	
        public void setUserRoles(Set<SysUserRole> userRoles) {
            this.userRoles = userRoles;
        }
        //	
    //	@ManyToMany(mappedBy="roles",cascade = CascadeType.MERGE,fetch = FetchType.LAZY)
    //	public Set<SysOrganization> getOrganizations() {
    //		return organizations;
    //	}
    //	public void setOrganizations(Set<SysOrganization> organizations) {
    //		this.organizations = organizations;
    //	}
    //	
    	@ManyToMany(fetch = FetchType.LAZY)
    	@JoinTable(name = "SYS_ROLE_RESOURCE", schema = "", joinColumns = { @JoinColumn(name = "role_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "resource_id", nullable = false, updatable = false) })
    	public Set<SysResource> getResources() {
    		return resources;
    	}
    	public void setResources(Set<SysResource> resources) {
    		this.resources = resources;
    	}
    	
    	@Transient
    	public Long[] getResourceIds() {
    		return resourceIds;
    	}
    	public void setResourceIds(Long[] resourceIds) {
    		this.resourceIds = resourceIds;
    	}
    	
    	
    }
    

      

    SYSUSERB

    package com.eshore.ismp.permission.model;
    
    import java.util.Date;
    import java.util.HashSet;
    import java.util.Set;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinTable;
    import javax.persistence.ManyToMany;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
    import javax.persistence.Transient;
    
    
    @Entity
    @SuppressWarnings("serial")
    @Table(name="SYS_USER_B")
    public class SysUserB {
        private Long id; //ID
        private String loginName; //登录名
        private String password; //密码
        private String name; //姓名
        private String nodeId;//节点
        private SysOrganization organization; // 所属组织
        private String phone; //电话
        private String mobilePhone; //手机
        private String email; //邮箱
        private String description; //描述
        private int type; // 类型  0 ismp-b ,1 ismp-hb,2 ismp-yh
        private String creatorId; //创建人
        private Date createTime; // 创建时间
        private Date updateTime; //更新时间
        private Set<String> roleIds; // 角色ID
        private String roleIdS; //角色ID
        private String orgName; //组织名
        private String nodeName; //节点名
    
    
        private Set<SysRole> roles = new HashSet<SysRole>(0); // 角色ID
    
        private Integer adminType; //0-非管理员,1-管理员
        private Long orgId;//组织ID
        
        
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Column(name = "id", unique = true, nullable = false, length = 32)
        public Long getId() {
            return id;
        }
        
        public void setId(Long id) {
            this.id = id;
        }
        
        
        
        @Column(name = "description", unique = false, nullable = true, insertable = true, updatable = true, length = 255)
        public String getDescription() {
            return description;
        }
        public void setDescription(String description) {
            this.description = description;
        }
        
        
        @Column(name="type")
        public int getType() {
            return type;
        }
    
        public void setType(int type) {
            this.type = type;
        }
        
        @Column(name="name")
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        @Column(name = "node_id", unique = false, nullable = true, insertable = true, updatable = true)
        public String getNodeId() {
            return nodeId;
        }
        public void setNodeId(String nodeId) {
            this.nodeId = nodeId;
        }
        @Column(name = "create_id", unique = false, nullable = true, insertable = true, updatable = true, length = 20)
        public String getCreatorId() {
            return creatorId;
        }
        public void setCreatorId(String creatorId) {
            this.creatorId = creatorId;
        }
        @Column(name = "password", unique = false, nullable = true, insertable = true, updatable = true, length = 255)
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "organization_id")
        public SysOrganization getOrganization() {
            return organization;
        }
        public void setOrganization(SysOrganization organization) {
            this.organization = organization;
        }
        @Column(name = "phone", unique = false, nullable = true, insertable = true, updatable = true, length = 20)
        public String getPhone() {
            return phone;
        }
        public void setPhone(String phone) {
            this.phone = phone;
        }
        @Column(name = "mobile_phone", unique = false, nullable = true, insertable = true, updatable = true, length = 20)
        public String getMobilePhone() {
            return mobilePhone;
        }
        public void setMobilePhone(String mobilePhone) {
            this.mobilePhone = mobilePhone;
        }
        @Column(name = "email", unique = false, nullable = true, insertable = true, updatable = true, length = 60)
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        
        @Column(name = "login_name", unique = false, nullable = true, insertable = true, updatable = true)
        public String getLoginName() {
            return loginName;
        }
        public void setLoginName(String loginName) {
            this.loginName = loginName;
        }
        
        @Column(name = "create_time", unique = false, nullable = true, insertable = true, updatable = true)
        public Date getCreateTime() {
            return createTime;
        }
        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
        
        @Column(name = "update_time", unique = false, nullable = true, insertable = true, updatable = true)
        public Date getUpdateTime() {
            return updateTime;
        }
        
        public void setUpdateTime(Date updateTime) {
            this.updateTime = updateTime;
        }
        
        @Column(name = "admin_type")
        public Integer getAdminType() {
            return adminType;
        }
    
        public void setAdminType(Integer adminType) {
            this.adminType = adminType;
        }
    
        @Transient
        public Set<String> getRoleIds() {
            return roleIds;
        }
        public void setRoleIds(Set<String> roleIds) {
            this.roleIds = roleIds;
        }
        @Transient
        public String getRoleIdS() {
            return roleIdS;
        }
        public void setRoleIdS(String roleIdS) {
            this.roleIdS = roleIdS;
        }
        @Transient
        public String getOrgName() {
            
            if(organization!=null){
                return organization.getName();
            }
            return orgName;
        }
        public void setOrgName(String orgName) {
            this.orgName = orgName;
        }
        @Transient
        public String getNodeName() {
            return nodeName;
        }
        public void setNodeName(String nodeName) {
            this.nodeName = nodeName;
        }
        
        /*
        @ManyToMany(fetch = FetchType.LAZY)
        @JoinTable(name = "SYS_USER_ROLE", schema = "", joinColumns = { @JoinColumn(name = "user_id", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "role_id", nullable = false, updatable = false) })
        */
        @Transient
        public Set<SysRole> getRoles() {
            return roles;
        }
        public void setRoles(Set<SysRole> roles) {
            this.roles = roles;
        }
        
        
        
        @Transient
        public Long getOrgId() {
            return orgId;
        }
        public void setOrgId(Long orgId) {
            this.orgId = orgId;
        }
        
        @Override
        public String toString() {
            return "SysUser [loginName=" + loginName + ", createTime=" + createTime
                    + "]";
        }
    }
    

      

  • 相关阅读:
    龙年新作:水印文字添加工具源码摘要
    C语言关键字 浪里白条:goto
    继续聊WPF——自定义命令
    CSS3新的鼠标样式介绍
    C语言深入理解 常量与变量
    XCode 4 不能运行的解决办法
    Runtime专题:详解IOS开发应用之并发Dispatch Queues
    C语言关键字 乱世枭雄:static与extern
    一步步带你做vue后台管理框架(一)——介绍框架
    怎么在谷歌浏览器中安装.crx扩展名的离线Chrome插件?
  • 原文地址:https://www.cnblogs.com/JAYIT/p/6198183.html
Copyright © 2020-2023  润新知