项目中处理用户与角色的关系

来源:互联网 发布:大数据论文参考文献 编辑:程序博客网 时间:2024/05/08 23:05
用户:用户1,用户2
角色:管理员,一般用户

用户与角色的关系:多对多
一个用户可以有多个角色;一个角色可以被多个用户使用

用户:user
用户id,名称...
1      用户1
2      用户2

用户角色:user_role
用户id,角色id
1       1
1       2
2       2


角色:role
角色Id,名称
1      管理员
2      一般用户


查询出用户后;需要知道这个用户有哪些角色


1.User

package cn.itcast.nsfw.user.entity;import java.io.Serializable;import java.util.Date;import java.util.List;public class User implements Serializable {private String id;//用户IDprivate String dept;//部门private String account;//账号private String name;//用户名private String password;//密码private String headImg;//头像private boolean gender;//性别private String state;//状态private String mobile;//手机号private String email;//电子邮箱private Date birthday;//生日private String memo;//描述private List<UserRole> userRoles;//用户角色//用户状态public static String USER_STATE_VALID = "1";//有效public static String USER_STATE_INVALID = "0";//无效public User() {}public User(String id, String dept, String account, String name, String password, String headImg, boolean gender, String state, String mobile, String email, Date birthday, String memo) {this.id = id;this.dept = dept;this.account = account;this.name = name;this.password = password;this.headImg = headImg;this.gender = gender;this.state = state;this.mobile = mobile;this.email = email;this.birthday = birthday;this.memo = memo;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getDept() {return dept;}public void setDept(String dept) {this.dept = dept;}public String getAccount() {return account;}public void setAccount(String account) {this.account = account;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getHeadImg() {return headImg;}public void setHeadImg(String headImg) {this.headImg = headImg;}public boolean isGender() {return gender;}public void setGender(boolean gender) {this.gender = gender;}public String getState() {return state;}public void setState(String state) {this.state = state;}public String getMobile() {return mobile;}public void setMobile(String mobile) {this.mobile = mobile;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getMemo() {return memo;}public void setMemo(String memo) {this.memo = memo;}public List<UserRole> getUserRoles() {return userRoles;}public void setUserRoles(List<UserRole> userRoles) {this.userRoles = userRoles;}}

2.UserRole

package cn.itcast.nsfw.user.entity;import java.io.Serializable;public class UserRole implements Serializable {private UserRoleId id;public UserRole() {}public UserRole(UserRoleId id) {this.id = id;}public UserRoleId getId() {return id;}public void setId(UserRoleId id) {this.id = id;}}

3.UserRoleId

package cn.itcast.nsfw.user.entity;import java.io.Serializable;import cn.itcast.nsfw.role.entity.Role;public class UserRoleId implements Serializable {private Role role;private String userId;public UserRoleId() {}public UserRoleId(Role role, String userId) {this.role = role;this.userId = userId;}public Role getRole() {return role;}public void setRole(Role role) {this.role = role;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((role == null) ? 0 : role.hashCode());result = prime * result + ((userId == null) ? 0 : userId.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;UserRoleId other = (UserRoleId) obj;if (role == null) {if (other.role != null)return false;} else if (!role.equals(other.role))return false;if (userId == null) {if (other.userId != null)return false;} else if (!userId.equals(other.userId))return false;return true;}}

4.User.hbm.xml

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="cn.itcast.nsfw.user.entity.User" table="user"><id name="id" type="java.lang.String"><column name="id" length="32" /><generator class="uuid.hex" /></id><property name="name" type="java.lang.String"><column name="name" length="20" not-null="true" /></property><property name="dept" type="java.lang.String"><column name="dept" length="20" not-null="true" /></property><property name="account" type="java.lang.String"><column name="account" length="50" not-null="true" /></property><property name="password" type="java.lang.String"><column name="password" length="50" not-null="true" /></property><property name="headImg" type="java.lang.String"><column name="headImg" length="100" /></property><property name="gender" type="java.lang.Boolean"><column name="gender" /></property><property name="email" type="java.lang.String"><column name="email" length="50" /></property><property name="mobile" type="java.lang.String"><column name="mobile" length="20" /></property><property name="birthday" type="java.util.Date"><column name="birthday" length="10" /></property><property name="state" type="java.lang.String"><column name="state" length="1" /></property><property name="memo" type="java.lang.String"><column name="memo" length="200" /></property></class></hibernate-mapping>

5.UserRole.hbm.xml

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="cn.itcast.nsfw.user.entity.UserRole" table="user_role"><composite-id name="id" class="cn.itcast.nsfw.user.entity.UserRoleId"><key-many-to-one name="role" lazy="false" class="cn.itcast.nsfw.role.entity.Role"><column name="role_id"></column></key-many-to-one><key-property name="userId" type="java.lang.String"><column name="user_id" length="32"></column></key-property></composite-id></class></hibernate-mapping>



0 0