OA项目15:权限管理实体设计及映射
首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明。谢谢。
一 实体设计:
1.权限实体设计:
1)属性设计:
主键:id
关联属性:Set<Role> roles,Set<Privilege> privileges,Privilege parent,Set<Privilege> children
一般属性:name,url
特殊属性:暂无
2)涉及到3个实体:User(用户),Role(岗位角色),Privilege(权限)。其关系映射如下图:
二 javabean,映射文件,表的创建:
1.javabean:Privilege.java
1 package cn.clear.oa.domain; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 /** 6 * 权限实体类 7 * @ClassName: Privilege 8 * @Description: TODO 9 * @author: clear 10 * @date: 2014-10-29 下午4:45:21 11 */ 12 public class Privilege { 13 14 private Long id; 15 private String name; 16 private String url; 17 private Privilege parent; 18 private Set<Role> roles = new HashSet<Role>(); 19 private Set<Privilege> children = new HashSet<Privilege>(); 20 public Long getId() { 21 return id; 22 } 23 public void setId(Long id) { 24 this.id = id; 25 } 26 public String getName() { 27 return name; 28 } 29 public void setName(String name) { 30 this.name = name; 31 } 32 public String getUrl() { 33 return url; 34 } 35 public void setUrl(String url) { 36 this.url = url; 37 } 38 public Set<Role> getRoles() { 39 return roles; 40 } 41 public void setRoles(Set<Role> roles) { 42 this.roles = roles; 43 } 44 public Privilege getParent() { 45 return parent; 46 } 47 public void setParent(Privilege parent) { 48 this.parent = parent; 49 } 50 public Set<Privilege> getChildren() { 51 return children; 52 } 53 public void setChildren(Set<Privilege> children) { 54 this.children = children; 55 } 56 57 }
Privilege.java
2.Privilege.hbm.xml:
1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 6 <hibernate-mapping package="cn.clear.oa.domain"> 7 <class name="Privilege" table="oa_privilege"> 8 <id name="id"> 9 <generator class="native" /> 10 </id> 11 <property name="name" /> 12 <property name="url" /> 13 <!-- roles属性,本类与Role的多对多 --> 14 <set name="roles" table="oa_privilege_role"> 15 <key column="privilegeId"></key> 16 <many-to-many class="Role" column="roleId"></many-to-many> 17 </set> 18 <!-- parent属性,本类与Privilege(上级)的多对一 --> 19 <many-to-one name="parent" class="Privilege" column="parentId"></many-to-one> 20 <!-- children属性,本类与Privilege(下级级)的一对多 --> 21 <set name="children" cascade="delete" order-by="id ASC"> 22 <key column="parentId"></key> 23 <one-to-many class="Privilege"/> 24 </set> 25 </class> 26 </hibernate-mapping>
Privilege.hbm.xml
3.在Role.java中加入和权限的关联属性:
private Set<Privilege> privileges = new HashSet<Privilege>();
//get与set方法
public Set<Privilege> getPrivileges() {
return privileges;
}
public void setPrivileges(Set<Privilege> privileges) {
this.privileges = privileges;
}
4.在Role.hbm.xml中加入和权限的关联关系属性:
<!-- privileges属性,本类与Privilege的多对多 -->
<set name="privileges" table="oa_privilege_role">
<key column="roleId"></key>
<many-to-many class="Privilege" column="privilegeId"></many-to-many>
</set>
5.将Privilege.hbm.xml加入hibernate.cfg.xml中:
<mapping resource="cn/clear/oa/domain/Privilege.hbm.xml" />
6.测试建表。
转载于:https://www.cnblogs.com/clear5/p/4060059.html
OA项目15:权限管理实体设计及映射相关推荐
- 一起谈.NET技术,C#权限管理和设计浅谈
权限管理是很多软件中相当重要的一个模块它的设计的好坏直接影响到软件的安全性.权限管理的可扩展性和易操作性 以及代码中权限判断的复杂程度和效率等方面.此文主要想和大家分享的是这段时间,对权限管理和设计的 ...
- SQL——一种简单的基于角色控制的权限管理数据库设计DEMO
-- ---------------------------- -- Table structure for resource -- ---------------------------- DROP ...
- 后台产品的基石:权限管理体系设计
后台产品的基石:权限管理体系设计 什么是后台产品? 简而言之,我们日常使用的互联网应用,有一些需要做数据/信息的呈现,管理维护这些数据/信息的产品,就是后台产品. 举个例子:在音乐app中有很多的歌曲 ...
- 企业办公oa系统、医药OA办公后台管理、会议管理、用户管理、物料管理、活动管理、日常拜访、Axure医药内部管理平台、web端后台管理系统原型、医药OA系统、权限管理、Axure原型、rp原型
企业办公oa系统.医药OA办公后台管理.会议管理.用户管理.物料管理.活动管理.Axure医药内部管理平台.web端后台管理系统原型.医药OA系统.权限管理 Axure原型演示及下载地址:https: ...
- 计算机管理系统日志 mei,计算机软件毕业设计-教育局oa系统-公文管理的设计与实现.doc...
计算机软件毕业设计-教育局oa系统-公文管理的设计与实现.doc 河北农业大学信息学院 本科毕业论文 题 目:Abstract English Office Automation, Office Au ...
- 协同OA管理系统的权限管理有哪些?
协同OA管理系统是服务组织的系统,而任何组织一定会涉及到权限:所以OA系统最最关键的核心就是权限控制.OA系统中的权限管理要实现的效果是对"什么时间.什么地点.谁可以访问什么内容.可以进行哪 ...
- Springboot毕设项目生鲜超市管理的设计与实现dvzk6java+VUE+Mybatis+Maven+Mysql+sprnig)
Springboot毕设项目生鲜超市管理的设计与实现dvzk6java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + ...
- 功能、资源权限管理的设计
一.目的 管理系统用户的功能菜单权限,物理资源(文件.数据)权限. 二.RBAC模型设计 RBAC简介 BAC模型(Role-Based Access Control:基于角色的访问控制)模型是一种权 ...
- 公司组织管理与权限管理的设计原则
如果有在企业内部进行信息系统设计和开发的人员,会有一个很深刻的体会,开发人员总是在授权,找不同的人员中折腾,来来回回的改动,耗费了大量的时间和精力.(这也算是中国特色,在其他地方,一般权限的设置很简单 ...
最新文章
- android 系统定位
- 计算机组成原理时序,计算机组成原理 中央处理器(CPU) 多级时序系统
- python画图程序-编程入门06:Python海龟绘图
- 联合体在单片机中的应用
- 机器学习 文本分类 代码_无需担心机器学习-如何在少于10行代码中对文本进行分类
- 文件服务器 工作站 通信媒体,用于多工作站/多平台非线性视频编辑系统的媒体文件访问和存储解决方案...
- 函数指针与指针函数(C++工厂设计最喜欢用这个)
- python 持续集成 教程_dotnet 部署 github 的 Action 进行持续集成|简明python教程|python入门|python教程...
- LeetCode # Array # Easy #118. Pascal's Triangle 119. Pascal's Triangle II
- Shell脚本 批量修改目录下若干文件名
- 多智能体强化学习MAPPO源代码解读
- GX works2 使用总结
- 英特尔芯片组 年代表_英特尔:对不起,但我们的7纳米芯片将延迟到2022年,2023年
- 指尖江湖李忘生鸿蒙初开,《剑网3:指尖江湖》李忘生战斗攻略解析
- mangos新手教程 - 服务器配置文件中文说明
- 原生js实现小方块拖拽
- 证明求最短路径问题具有最优子结构(动态规划)
- docker项目切换(nginx)、重启shell 脚本
- Android监听程序进入后台,或者恢复到前台
- LeetCode79 Word Search
热门文章
- Linux clear指令
- Java按空白部分切分图片
- (Integer) 128 == (Integer) 128 为false详细解读
- linux history 看更多历史记录_Linux历史记录history常用技巧
- Spring Boot 配置文件密码加密方法
- Qt pro工程文件中判断宏定义是否存在
- 多项式(polynomial)和 单项式(monomial)
- pdfbox 按章节读取_2020年知到设施园艺学第十单元章节测试答案
- maven引用公共包_Maven项目怎样引用其他项目/或者jar包-阿里云开发者社区
- ESP32彩屏成为HMI这条GAI最靓的仔--8月27日启明云端携手乐鑫为你共述ESP32时下最IN进阶玩法--以简驭繁,AI语音、彩屏尽显锋芒