角色和权限Hibernate实体映射配置
角色实体
package cn.itcast.oa.domain;import java.util.HashSet; import java.util.Set;/*** 岗位* * @author tyg* */ public class Role {private Long id;private String name;private String description;private Set<User> users = new HashSet<User>();private Set<Privilege> privileges = new HashSet<Privilege>();public Long getId() {return id;}public void setId(Long id) {this.id = id;}public Set<User> getUsers() {return users;}public void setUsers(Set<User> users) {this.users = users;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public Set<Privilege> getPrivileges() {return privileges;}public void setPrivileges(Set<Privilege> privileges) {this.privileges = privileges;}}
权限实体
package cn.itcast.oa.domain;import java.util.HashSet; import java.util.Set;/*** 权限* * @author tyg* */ public class Privilege {private Long id;private String url;private String name; // 权限名称private Set<Role> roles = new HashSet<Role>();private Privilege parent; // 上级权限private Set<Privilege> children = new HashSet<Privilege>(); // 下级权限public Privilege() {}public Privilege(String name, String url, Privilege parent) {this.name = name;this.url = url;this.parent = parent;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Role> getRoles() {return roles;}public void setRoles(Set<Role> roles) {this.roles = roles;}public Privilege getParent() {return parent;}public void setParent(Privilege parent) {this.parent = parent;}public Set<Privilege> getChildren() {return children;}public void setChildren(Set<Privilege> children) {this.children = children;}}
两者映射
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.oa.domain"><class name="Role" table="itcast_role"><id name="id"><generator class="native"/></id><property name="name" /><property name="description" /><!-- users属性,本类与User的多对多 --><set name="users" table="itcast_user_role"><key column="roleId"></key><many-to-many class="User" column="userId"></many-to-many></set><!-- privileges属性,本类与Privilege的多对多 --><set name="privileges" table="itcast_role_privilege" lazy="false"><key column="roleId"></key><many-to-many class="Privilege" column="privilegeId"></many-to-many></set> </class></hibernate-mapping>
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="cn.itcast.oa.domain"><class name="Privilege" table="itcast_privilege"><id name="id"><generator class="native"/></id><property name="url" /><property name="name" /><!-- roles属性,本类与Role的多对多--><set name="roles" table="itcast_role_privilege"><key column="privilegeId"></key><many-to-many class="Role" column="roleId"></many-to-many></set><!-- parent属性,本类与Privilege(上级)的多对一--><many-to-one name="parent" class="Privilege" column="parentId"></many-to-one><!-- children属性,本类与Privilege(下级)的一对多--><set name="children" lazy="false"><key column="parentId"></key><one-to-many class="Privilege"/></set></class></hibernate-mapping>
Hibernate实体映射总结
<!-- users属性,本类与User的一对多 -->
格式:?属性,本类与?的?
?1 属性名
?2 关联对类型
?3 关系
多对一:
<many-to-one name="" class="" column=""></many-to-one>
一对多(Set):
<set name="">
<key column=""></key>
<one-to-many class=""/>
</set>
多对多(Set):
<set name="" table="">
<key column=""></key>
<many-to-many class="" column=""></many-to-many>
</set>
转载于:https://blog.51cto.com/tianxingzhe/1743577
角色和权限Hibernate实体映射配置相关推荐
- Hibernate实体映射配置1(java@注解方式)
实体和数据库之间存在某种映射关系,hibernate根据这种映射关系完成数据的存取.在程序中这种映射关系由映射文件(*.hbm.xml)或者java注解(@)定义. 本文以java注解的形式总结映射关 ...
- 【Hibernate】Hibernate实体映射——单边的一对多关系
数据库中的表是有关系的,两个表之间可以通过外键关联.如果把表抽象为实体类,这些关系可以抽象为实体之间的一对一,一对多,多对一等关系.hibernate能处理这些复杂的关系,前提是要正确配置这些关系. ...
- Hibernate 实体映射类的状态值自动转换
经常会遇到有些字段在数据库只是一个 byte 值,但是取出数据后需要转换为真实的状态名称. 举个栗子:一个图书管理系统,书籍有一个属性 stat(借出状态),在库中只需要保存一个 0/1/2/3/4 ...
- 【Hibernate】Hibernate实体关系映射实例解析
//刘梦冰发表于2015-6-18 1.使用XML配置 Cat.java(实体类) public classCat {private Integerid;private Stringname;priv ...
- Hibernate一对一映射示例注释
Hibernate一对一映射示例注释 今天我们将研究Hibernate中的一对一映射.我们将使用Annotation和XML配置来研究Hibernate One To One Mapping示例. 目 ...
- hibernate注释映射_Hibernate一对一映射示例注释
hibernate注释映射 Today we will look into One to One Mapping in Hibernate. We will look into Hibernate O ...
- RBAC:基于角色的权限访问控制
文章目录 RBAC模型概述 RBAC的组成 RBAC支持的安全原则 RBAC的优缺点 RBAC的3种模型 RBAC模型概述 RBAC模型(Role-Based Access Control:基于角色的 ...
- Hibernate映射配置方法
*************************Hibernate基本映射 hibernate通过映射文件知道如何加载(load)和存储(store)持久化类的对象,映射文件告诉hibernate应 ...
- Hibernate 实体关联关系映射----总结
http://lavasoft.blog.51cto.com/62575/39398 Hibernate 实体关联关系映射----总结 花了三天的业余时间,终于写完了Hibernate关联关系映射的所 ...
最新文章
- 【我眼中的戴尔转型】 (二) 厚积薄发,戴尔扩大战线迎头追击IBM HP
- 一文带你读懂边缘计算是什么
- opencv python3 找图片色块_Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理...
- 各地实时摄像头_智能摄像头——城市治安防控的“天眼”
- linux用光盘作yum源实验步骤,Linux使用系统光盘作为YUM源
- 引入LeakCanary到项目
- 服务器响应401,如果服务器返回401响应,则重定向到登录页面(Redirect to login page if server returns 401 response)...
- java并发编程实践学习(二)由可重入锁想到的
- 线性代数学习笔记——第三十三讲——向量混合积的几何意义
- 百度地图导航Android6.0初始化失败解决方法
- java 操作Zip文件(压缩、解压、加密)
- linux rewind函数,fseek(),ftell()和rewind()函数的用法详解
- redit mysql_这就是Reddit十年来的成就
- Ubuntu下 vim安装失败的解决方法 以及安装vim
- jieba,为中文分词而生的Python库
- mysql数据自增ID为2的解决办法
- 驰骋BPM系统-表单引擎-流程引擎2020年大换装
- 筑牢企业数字化转型的“底盘”,浪潮云ERP呈现出怎样的全景图?
- Problem F: 凹凸四边形
- html %3c自动转化,一行代码让谷歌浏览器变成在线编辑器(示例代码)
热门文章
- Helper Devise: could not find the `Warden::Proxy` instance on request environment
- PHP将Excel另存为html页面
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲...
- Oracle优化查询技巧
- 诗与远方:无题(二十一)
- 诗与远方:无题(八)
- linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx
- Ajax(一)——Ajax基础概念,HTTP头部(重点)
- html游戏图标库,又一款开源图标库 CSS.GG,值得一用
- python selenium 点击开始按钮,python selenium-点击页面而不使用next按钮