權限表設計之代碼解析

在權限表設計中已經說了權限表的結構,在這裏我說下代碼

user表

</pre><pre name="code" class="html">@Entity
@Table(name="user")
public class User implements Serializable{

	
    private static final long serialVersionUID = 6177417450707400228L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="userid",nullable=false)
	private int userId;
    
	@Column(name="username")
	private String userName;
	
	@Column(name="userpassword")
    private String userPassword;
	
    /*
     * cascade:爲級聯操作,裏面有級聯保存,級聯刪除等,all爲所有 
     * fetch:加載類型,有lazy和eager二種,
     *   eager爲急加載,意爲立即加載,在類加載時就加載,lazy爲慢加載,第一次調用的時候再加載,由於數據量太大,onetomany一般爲lazy
     * mappedBy:這個爲manytoone中的對象名,這個不要變哦
     * 
     * <UserRole>:爲要獲得的mappedBy的類
     */
    @OneToMany(fetch=FetchType.LAZY,mappedBy="user",cascade=CascadeType.ALL)
	private List<UserRole> listUserRole; 
	
	public int getUserId() {
		return userId;
	}

	public void setUserId(int userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserPassword() {
		return userPassword;
	}

	public void setUserPassword(String userPassword) {
		this.userPassword = userPassword;
	}

	public List<UserRole> getListUserRole() {
		return listUserRole;
	}

	public void setListUserRole(List<UserRole> listUserRole) {
		this.listUserRole = listUserRole;
	}	
} 

userrole表

@Entity
@Table(name="userrole")
public class UserRole implements Serializable{
    
	private static final long serialVersionUID = 6177417450707400228L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id",nullable=false)
	private int id;
	
	@ManyToOne(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
	@JoinColumn(name="userid")
	private User user;
	
    @ManyToOne(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
	@JoinColumn(name="roleid")
	private Role role;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}
	
	public Role getRole() {
		return role;
	}

	public void setRole(Role role) {
		this.role = role;
	}
	
}
role表

@Entity
@Table(name="role")
public class Role implements Serializable{
	
	
	private static final long serialVersionUID = 6177417450707400228L;   
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="roleid",nullable=false)
	private int roleId;
	
	@Column(name="rolename")
    private String roleName;
	
	@OneToMany(fetch=FetchType.LAZY,mappedBy="role",cascade=CascadeType.ALL)
	private List<UserRole> listUserRole;
	
	@OneToMany(fetch=FetchType.LAZY,mappedBy="role",cascade=CascadeType.ALL)
	private List<RolePermission> listRolePermission;
			
	public int getRoleId() {
		return roleId;
	}
	public void setRoleId(int roleId) {
		this.roleId = roleId;
	}
	
	public String getRoleName() {
		return roleName;
	}
	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}
	
	public List<UserRole> getListUserRole() {
		return listUserRole;
	}
	public void setListUserRole(List<UserRole> listUserRole) {
		this.listUserRole = listUserRole;
	}
	
	public List<RolePermission> getListRolePermission() {
		return listRolePermission;
	}
	public void setListRolePermission(List<RolePermission> listRolePermission) {
		this.listRolePermission = listRolePermission;
	}	
}

rolepermission表

@Entity
@Table(name="rolepermission")
public class RolePermission implements Serializable{
    
	private static final long serialVersionUID = 6177417450707400228L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="id",nullable=false)
	private int id;
	
	@ManyToOne(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
	@JoinColumn(name="roleid")
	private Role role;

	@ManyToOne(fetch=FetchType.EAGER,cascade=CascadeType.ALL)
	@JoinColumn(name="permissionid")
	private Permission permission;
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public Role getRole() {
		return role;
	}

	public void setRole(Role role) {
		this.role = role;
	}

	public Permission getPermission() {
		return permission;
	}

	public void setPermission(Permission permission) {
		this.permission = permission;
	}
	
}

permission表

@Entity
@Table(name="permission")
public class Permission implements Serializable{
    
    private static final long serialVersionUID = 6177417450707400228L;
    
    @Id
	@GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name="permissionid",nullable=false)
	private int permissionId;
	
    @Column(name="permission")
	private String permission;
    
	@OneToMany(fetch=FetchType.LAZY,mappedBy="permission",cascade=CascadeType.ALL)
	private List<RolePermission> listRolePermission;
    	
	public int getPermissionId() {
		return permissionId;
	}

	public void setPermissionId(int permissionId) {
		this.permissionId = permissionId;
	}

	public String getPermission() {
		return permission;
	}

	public void setPermission(String permission) {
		this.permission = permission;
	}

	public List<RolePermission> getListRolePermission() {
		return listRolePermission;
	}

	public void setListRolePermission(List<RolePermission> listRolePermission) {
		this.listRolePermission = listRolePermission;
	}
}

我這裏是按照我的權限表博客裏設計的,另外使用的onetomany和manytoone,在這裏也可以用manytomany,

根據大家的喜好來寫吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章