当前位置 博文首页 > 杨博程的专栏:权限资源经典配置【用户+角色+权限+部门】

    杨博程的专栏:权限资源经典配置【用户+角色+权限+部门】

    作者:[db:作者] 时间:2021-09-07 13:24

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? 经典权限配置(一对多、多对一、多对多)配置



    部门实体映射配置文件:Department.hbm.xml

    <?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="com.ywx.tiles.account.entity">
    
    	<class name="Department" table="xt_department"> 
    		<id name="id">
    			<generator class="native" />
    		</id>
    		<property name="name" />
    		<property name="description" />
    
    
    		<!-- users属性,本类与User的一对多 -->
    		<set name="users">
    			<key column="departmentId"></key>
    			<one-to-many class="User" />
    		</set>
    
    
    		<!-- parent属性,本类与Department(上级)的多对一 -->
    		<many-to-one name="parent" class="Department" column="parentId"></many-to-one>
    
    
    		<!-- children属性,本类与Department(下级)的一对多
    			order-by属性:指定的是sql的orderby子句内容
    		 -->
    		<set name="children" cascade="delete" order-by="id ASC">
    			<key column="parentId"></key>
    			<one-to-many class="Department" />
    		</set>
    
    
    	</class>
    	
    </hibernate-mapping>
    

    用户 实体映射配置文件:User.hbm.xml

    <?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="com.ywx.tiles.account.entity">
    
    	<class name="User" table="xt_user">
    		<id name="id">
                <generator class="native"/>
    		</id>
    		<property name="loginName" />
    		<property name="password" />
    		<property name="name" />
    		<property name="gender" />
    		<property name="phoneNumber" />
    		<property name="email" />
    		<property name="description" />
    		
    		
    		<!-- department属性,本类与Department的多对一 -->
    		<many-to-one name="department" class="Department" column="departmentId"></many-to-one>
    		
    		
    		<!-- roles属性,本类与Role的多对多 -->
    		<set name="roles" table="xt_user_role" lazy="false">
    			<key column="userId"></key>
    			<many-to-many class="Role" column="roleId"></many-to-many>
    		</set>
    		
    		
    	</class>
    	
    </hibernate-mapping>
    

    角色实体映射配置文件:Role.hbm.xml

    <?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="com.ywx.tiles.account.entity">
    
    	<class name="Role" table="xt_role">
    		<id name="id">
                <generator class="native"/>
    		</id>
    		<property name="name" />
    		<property name="description" />
    		
    		
    		<!-- users属性,本类与User的多对多 -->
    		<set name="users" table="xt_user_role">
    			<key column="roleId"></key>
    			<many-to-many class="User" column="userId"></many-to-many>
    		</set>
    		
    		
    		<!-- privileges属性,本类与Privilege的多对多 -->
    		<set name="privileges" table="xt_role_privilege" lazy="false">
    			<key column="roleId"></key>
    			<many-to-many class="Privilege" column="privilegeId"></many-to-many>
    		</set>	
    		
    	</class>
    	
    </hibernate-mapping>
    

    权限实体映射配置文件:Privilege.hbm.xml

    <?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="com.ywx.tiles.account.entity">
    
    	<class name="Privilege" table="xt_privilege">
    		<id name="id">
                <generator class="native"/>
    		</id>
    		<property name="name" />
    		<property name="url" />
    		
    		
    		<!-- roles属性,本类与Role的多对多 -->
    		<set name="roles" table="xt_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" order-by="id ASC">
    		   <key column="parentId"></key>
    		   <one-to-many class="Privilege"/>
    		</set>
    		
    	</class>
    	
    </hibernate-mapping>
    




    cs