码迷,mamicode.com
首页 > 编程语言 > 详细

javaEE 用户、部门、角色、权限实体的关系设计与hibernate映射配置文件关系总结

时间:2016-03-26 06:57:51      阅读:747      评论:0      收藏:0      [点我收藏+]

标签:


文章中的项目文件已经放到Github上,欢迎大家Follow,star,

地址:https://github.com/lawlite19/SmartEducation


一:设计实体,我这里通过uml设计,然后直接可以生成java实体类(方便查看各个类的关系)

(1)用户登录类User与用户详细信息类UserDetails为一对一关系;

(2)用户详细信息类UserDetails与部门为多对一关系;(一个部门有多个用户)

(3)部门类是自关联的,有上级部门;

(3)用户详细类UserDetails与角色类Role为多对多的关系;(一个用户可有多个角色,一个角色也可对应多个用 户)

(4)角色类Role与权限类Privilege类为多对多关系;(一个角色可有多个权限,一个权限也可对应多个角色)

(5)权限类是自关联的,因为分为若干级权限。

技术分享

然后直接可以到处java实体类,

技术分享

技术分享

然后拷贝到MyEclipse中,生成get、set方法

二:写hibernate的hbm.xml映射文件,普通的属性切分两屏对着写就行了,主要说下实体之间对应的关系

技术分享

(1)用户类与用户信息类为一对一,我用的外键关联(即用户表中存有用户信息表的主键Id)

在用户信息类中有user属性:(cascade是级联)

技术分享

在用户表中有userDetails属性,指明创建数据库表时列名colum="UserDetails_Id"

技术分享

(2)部门类和用户信息类是多对一

在用户信息类中有department属性,对应表中存储部门的Id:

技术分享

在部门类中有userDetails属性,key为指明对应的列:

技术分享

(3)用户信息类与角色类为多对多

用户信息类中有roles属性,指明中间表为T_UserDetails_Role:(多对多关系需要创建一个中间表,分别存储两个表的主键Id)

key指明对应的列,

技术分享

角色类中有userDetails属性

技术分享

(4)也是多对多,与上相同

技术分享

技术分享

(5)部门自关联,上级部门为多对一,下级部门则为一对多

技术分享

(6)权限自关联,与上相同

技术分享

三:测试,在创建sessionFactory的时候创建表,写个JUnit测试执行


技术分享

(1)发现表自动创建成功,下面我们主要检查一下关系对应的是否正确

技术分享

(2)正确

技术分享

(3)正确

技术分享

(4)正确

技术分享

(5)正确

技术分享

(6)正确

技术分享

(7)正确

技术分享

(8)正确

技术分享

四、总结

主要总结一下关系的对应:

(1)一对一(外键)
    主表
<many-to-one name="" class="" column="" unique="true">
    副表
<one-to-one name="" class="" cascade="all"></one-to-one>

(2)一对多
<set name="">
<key column=""></key>
<one-to-many class="" />
</set>

(3)多对一
<many-to-one name="" class="" column="">
</many-to-one>

(4)多对多
<set name="" table="">
<key column=""></key>
<many-to-many class="" column=""></many-to-many>
</set>

一对多和多对多要有set,多对多中要多table和column属性

步骤:

1、写注释对应关系

即:xx属性,本类与yy类的zz关系

2、将上面的模板拷贝

3、填写:(1)name---->xx

 (2)class---->yy

 (3)

1)many-to-one中column---->yy_Id(看个人习惯)

2)one-to-many中key----->对方many-to-one中的column属性

3)many-to-many中key---->本对象_Id(看个人习惯)

     many-to-many中column---->yy_Id

 

javaEE 用户、部门、角色、权限实体的关系设计与hibernate映射配置文件关系总结

标签:

原文地址:http://blog.csdn.net/u013082989/article/details/50983650

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!