下面来看角色实体
UxRole
package module.system.vo;
import org.apache.struts2.json.annotations.JSON;
/** * UxAdmin entity. @author MyEclipse Persistence Tools */ @Entity @Table(name = "ux_sys_role") public class UxRole implements java.io.Serializable {
// Fields @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", unique = true, nullable = false) private Integer id;
@Column(name = "roleName", length = 32) private String roleName;
@Column(name = "roleDesc", length = 500) private String roleDesc;
@ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "ux_sys_role_menu", joinColumns = { @JoinColumn(name = "roleId") }, inverseJoinColumns = { @JoinColumn(name = "menuId") }) private Set<UxSysMenu> menus;
@ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "ux_sys_user_role", joinColumns = { @JoinColumn(name = "roleId") }, inverseJoinColumns = { @JoinColumn(name = "adminId") }) private Set<UxAdmin> uxAdmins;
// Constructors
/** default constructor */ public UxRole() { }
/** minimal constructor */ public UxRole(Integer id) { this.id = id; }
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getRoleName() { return roleName; }
public void setRoleName(String roleName) { this.roleName = roleName; }
public String getRoleDesc() { return roleDesc; }
public void setRoleDesc(String roleDesc) { this.roleDesc = roleDesc; }
@JSON(serialize = false) public Set<UxSysMenu> getMenus() { return menus; }
public void setMenus(Set<UxSysMenu> menus) { this.menus = menus; }
@JSON(serialize = false) public Set<UxAdmin> getUxAdmins() { return uxAdmins; }
public void setUxAdmins(Set<UxAdmin> uxAdmins) { this.uxAdmins = uxAdmins; }
/** * 是否主键相等 */ @Override public boolean equals(Object obj) {
if(obj instanceof UxRole){ UxRole uxRole = (UxRole)obj; if(uxRole.id == this.id){ return true; }
}
return false; }
@Override public int hashCode() { // TODO Auto-generated method stub return this.id; } } |
说明:角色实体双向关联了人员实体和菜单实体,让人员和菜单建立起了一个桥梁,当然,因为人员对应的角色有可能重复,所以在角色类中必须实现equals和hashCode。