日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OA项目15:权限管理实体设计及映射

發布時間:2024/10/12 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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:权限管理实体设计及映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。