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

原创 2016年08月31日 16:54:58
用户:用户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;//用户ID
	private 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;
	}
	@Override
	public 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;
	}
	@Override
	public 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>
	



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Unexpected Exception caught setting 'x' on class xx:Error setting expression 'xx' with value ['x',]

废话不多说,直接进入正题:在用SSH框架敲代码时,遇到这样的一个问题: Unexpected Exception caught setting 'act' on 'classcn.itcas...

SSH项目--国税(四)

6.3用户角色说明 一个用户可以对应多个角色,一个角色可以对应多个用户。用户与角色的关系也是多对多的关系。在页面中应该体现出在添加、编辑用户时可以选择多个角色;并且用户不直接关联系统的权限,用户的...

用户·角色·权限·表

一.引言        因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。        权限系统一直以来是我们应用系统不可缺...

用户、角色、权限表的关系

一,各个表格 1、用户表 CREATE TABLE `t_user` (   `id` varchar(40) NOT NULL,   `username` varchar(2...

写用户与角色的关系

角色与权限:多对多 一个角色可以有多个权限,一个权限可以被多个角色使用。 那我们下面就来使用我们完成的角色。 我们先来看一下需求,记不记得之前的用户编辑界面: 可以看到,我们注册用...

GreenPlum 之数据库的用户角色管理

1,创建用户role在greenplum后续版本中,已经将使用role取代了user,所以创建用户就是create role: [gpadmin@dwhm01_2_111 ~]$ psql -d ...
  • mchdba
  • mchdba
  • 2017年05月08日 23:02
  • 2183

用户、角色和权限开发

角色、权限规划与开发 导言   最近花了一段时间在做权限开发者一块,从设计到编码,我都全程参与了,对权限开发也有了一个本质上的了解,权限管理作为一个系统最基本也是最重要的功能之一,在一个系统中是非常重...

用户角色权限设计-三者关系

用户角色权限,它们之间的关系是用户依赖于角色,角色依赖于权限。

用户、角色和权限关系

一.引言        因为做过的一些系统的权限管理的功能虽然在逐步完善,但总有些不尽人意的地方,总想抽个时间来更好的思考一下权限系统的设计。        权限系统一直以来是我们应用系统不可缺少的...
  • A123638
  • A123638
  • 2015年12月21日 21:13
  • 7815

java权限管理与用户角色权限设计

实现业务系统中的用户权限管理  B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:项目中处理用户与角色的关系
举报原因:
原因补充:

(最多只允许输入30个字)