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.java2.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.xml3.在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:权限管理实体设计及映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联合国前秘书长安南去世消息 多次到过清华
- 下一篇: 支付宝可以贷款吗