一、数据库,参照网上一些范例,在mysql中创建以下表
二、用myEclipse生成pojo、dao后,对hbm.xml的配置部分修改,绕过只起关联关系的表,改为把两个一对多改为一个多对多。
三、pojo中集合属性的修改,和以上配置保持一致,略...
-- Create the datatable named by 'RBAC_User' to save users.
create table RBAC_User
(
User_ID int primary key auto_increment,
User_Name varchar(20) not null,
User_PassWord varchar(20) not null,
User_Lock bit not null
);
CREATE UNIQUE INDEX IDX_User ON RBAC_User(User_Name) ;
-- Create the datatable named by 'RBAC_Group' to save groups.
create table RBAC_Group
(
Group_ID int primary key auto_increment,
Group_Name varchar(20) not null,
Group_Description varchar(100)
);
CREATE UNIQUE INDEX IDX_Group ON RBAC_Group(Group_Name) ;
-- Create the datatable named by 'RBAC_Role' to save roles.
create table RBAC_Role
(
Role_ID int primary key auto_increment,
Role_Name varchar(20) not null,
Role_Description varchar(100)
);
CREATE UNIQUE INDEX IDX_Role ON RBAC_Role(Role_Name) ;
-- Create the datatable named by 'RBAC_Resource' to save Resources.
create table RBAC_Resource
(
Resource_ID int primary key auto_increment,
Resource_Name varchar(20) not null,
Resource_Description varchar(100)
);
CREATE UNIQUE INDEX IDX_Resource ON RBAC_Resource(Resource_Name) ;
-- Create the datatable named by 'RBAC_Operation' to save Operations.
create table RBAC_Operation
(
Operation_ID int primary key auto_increment,
Operation_Name varchar(10) not null,
Operation_Description varchar(100)
);
CREATE UNIQUE INDEX IDX_Operation ON RBAC_Operation (Operation_Name);
--Create the datatable named by 'RBAC_UserGroup' to save userGroup.
create table RBAC_User_Group
(
User_Group_ID int primary key auto_increment,
User_ID int not null,
Group_ID int not null,
constraint foreign key(User_ID) references RBAC_User(User_ID) ,
constraint foreign key(Group_ID) references RBAC_Group(Group_ID)
);
CREATE UNIQUE INDEX IDX_User_Group ON RBAC_User_Group ( User_ID , Group_ID);
-- Create the datatable named by 'RBAC_GroupRole' to save GroupRoles.
create table RBAC_Group_Role
(
Group_Role_ID int primary key auto_increment,
Group_ID int not null,
Role_ID int not null,
constraint foreign key(Group_ID) references RBAC_Group(Group_ID) ,
constraint foreign key(Role_ID) references RBAC_Role(Role_ID)
);
CREATE UNIQUE INDEX IDX_Group_Role ON RBAC_Group_Role( Group_ID, Role_ID);
-- Create the datatable named by RBAC_Authority to save authorities.
create table RBAC_Authority
(
Authority_ID int primary key auto_increment,
Resource_ID int not null,
Operation_ID int not null,
constraint foreign key(Resource_ID) references RBAC_Resource(Resource_ID) ,
constraint foreign key(Operation_ID) references RBAC_Operation(Operation_ID)
);
CREATE UNIQUE INDEX IDX_Authority ON RBAC_Authority (Resource_ID, Operation_ID);
-- Create the datatable named by RBAC_Permission to save permissions.
create table RBAC_Permission
(
Permission_ID int primary key auto_increment,
Role_ID int not null,
Authority_ID int not null,
constraint foreign key(Role_ID) references RBAC_Role(Role_ID) ,
constraint foreign key(Authority_ID) references RBAC_Authority(Authority_ID)
);
CREATE UNIQUE INDEX IDX_Permission ON RBAC_Permission (Role_ID, Authority_ID);
二、用myEclipse生成pojo、dao后,对hbm.xml的配置部分修改,绕过只起关联关系的表,改为把两个一对多改为一个多对多。
//RbacGroup.hbm.xml
<set name="rbacUsers" table="rbac_user_group" inverse="true" lazy="true" cascade="save-update">
<key>
<column name="Group_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacGroup" column="User_ID" />
</set>
<set name="rbacRoles" table="rbac_group_role" inverse="true" lazy="true" cascade="save-update">
<key>
<column name="Group_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacGroup" column="Role_ID" />
</set>
//RbacUser.hbm.xml
<set name="rbacGroups" table="rbac_user_group" inverse="false" lazy="true" cascade="save-update">
<key>
<column name="User_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacUser" column="Group_ID" />
</set>
//RbacRole.hbm.xml
<set name="rbacGroups" table="rbac_group_role" inverse="false" lazy="true" cascade="save-update">
<key>
<column name="Role_ID" not-null="true" />
</key>
<many-to-many class="dao.rbac.RbacRole" column="Group_ID" />
</set>
三、pojo中集合属性的修改,和以上配置保持一致,略...