Hibernate单向多对多 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    最近做一个OA系统,用到了Hibernate框架,我发现,权限和角色的关系是一种多对多的关系,一个权限可以分配给多个角色,一个角色拥有多个权限,

Hibernate单向多对多

    多对多关系有两种,一种是单向的,一种是多向的。对于这个问题,曾经让我很犯难。单纯在语言上理解,会比较复杂,而从代码上理解,可能就会明白了。

    下面模拟为角色授权的过程:

    1,Hibernate使用Annotation

    2,使用Junit进行测试。

    3,使用Mysql作为后台数据库。

    4,Hibernate不使用自动建表,也不采用反向工程。

    过程 :

    1,建表:

    数据表结构采用如图所示:

   

    SQL语句:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    CREATE TABLE role(                         #角色表

    RoleId INT PRIMARY KEY AUTO_INCREMENT , #角色ID

    RoleName VARCHAR(20) NOT NULL           #角色名称

    ) ;

    CREATE TABLE privilege(                    #权限表

    PrivilegeId INT PRIMARY KEY ,           #权限ID

    PrivilegeName VARCHAR(45) NOT NULL      #权限表

    ) ;

    CREATE TABLE privilege_role(               #权限_角色中间表

    RoleId INT ,

    PrivilegeId INT ,

    PRIMARY KEY (RoleId,PrivilegeId) ,

    CONSTRAINT fk_privilege_role FOREIGN KEY(RoleId) REFERENCES role(RoleId) ,

    CONSTRAINT fk_role_privilege FOREIGN KEY(PrivilegeId) REFERENCES privilege(PrivilegeId)

    ) ;

    2,hibernate.cfg.xml文件:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

   

   

   

    com.mysql.jdbc.Driver

    jdbc:mysql://localhost:3306/hibernate

    root

    xxxx

    org.hibernate.dialect.MySQL5InnoDBDialect

    true

   

   

   

   

最新文章