OA项目15:权限管理实体设计及映射
首注:本學(xué)習(xí)教程為傳智播客湯陽(yáng)光講師所公布的免費(fèi)OA項(xiàng)目視頻我的文字版實(shí)踐筆記,本人用此來(lái)加強(qiáng)鞏固自己開發(fā)知識(shí),如有網(wǎng)友轉(zhuǎn)載,請(qǐng)注明。謝謝。
一 實(shí)體設(shè)計(jì):
1.權(quán)限實(shí)體設(shè)計(jì):
1)屬性設(shè)計(jì):
主鍵:id
關(guān)聯(lián)屬性:Set<Role> roles,Set<Privilege> privileges,Privilege parent,Set<Privilege> children
一般屬性:name,url
特殊屬性:暫無(wú)
2)涉及到3個(gè)實(shí)體:User(用戶),Role(崗位角色),Privilege(權(quán)限)。其關(guān)系映射如下圖:
二 javabean,映射文件,表的創(chuàng)建:
1.javabean:Privilege.java
1 package cn.clear.oa.domain; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 /** 6 * 權(quán)限實(shí)體類 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的多對(duì)多 --> 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(上級(jí))的多對(duì)一 --> 19 <many-to-one name="parent" class="Privilege" column="parentId"></many-to-one> 20 <!-- children屬性,本類與Privilege(下級(jí)級(jí))的一對(duì)多 --> 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中加入和權(quán)限的關(guān)聯(lián)屬性:
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中加入和權(quán)限的關(guān)聯(lián)關(guān)系屬性:
<!-- privileges屬性,本類與Privilege的多對(duì)多 -->
<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.測(cè)試建表。
轉(zhuǎn)載于:https://www.cnblogs.com/clear5/p/4060059.html
總結(jié)
以上是生活随笔為你收集整理的OA项目15:权限管理实体设计及映射的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 联合国前秘书长安南去世消息 多次到过清华
- 下一篇: 支付宝可以贷款吗