権限テーブル設計のコード解析
5846 ワード
パーミッションテーブル設計ではパーミッションテーブルの構造について説明しましたが、ここではコードについて説明します.
userテーブル
userroleテーブル
rolepermissionテーブル
permissionテーブル
ここは私の権限表ブログに基づいて設計されています.またonetomanyとmanytooneを使っています.ここでもmanytomanyを使うことができます.
みんなの好みで書きましょう.
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を使うことができます.
みんなの好みで書きましょう.