我是Hibernate的新手,只是经历了几个样本
经过几个样本后,我仍然对决定表之间的关系感到困惑。
考虑一下情节,我有角色和权限分配给它
Role Permission
------------------------------------------------------
ROLE_ADMIN = Create, Update, Delete, View
ROLE_MANAGER = Update, View
ROLE_VIEWER = View
在这种情况下,我创建了这样的表,
Role
-----
role_id(PK) role_name
Permission
-----------
permission_id(PK) permission_name
Role_Permission
-----------------
role_permission_id role_id(FK) permission_id(FK)
现在,在这种情况下,1个角色可以拥有多个Permisssion,而许多权限可以属于一个角色,所以我认为考虑到这个数字,这是一对多的关系,
Role_Permission
-----------------
role_permission_id role_id(FK) permission_id(FK)
----------------------------------------------------------
1--------------------1---------------1
2--------------------1---------------2
3--------------------1---------------3
4--------------------2---------------1
5--------------------2---------------3
具有Id 1的角色被映射到具有Id为1,2,3的许多权限。 许多权限如1,2,3属于一个ID为1的角色
所以我认为这是一对多
我也认为它属于多对多, 在我的脑海中考虑这张照片,
role_permission_id role_id(FK) permission_id(FK)
----------------------------------------------------------
1--------------------1---------------1
2--------------------1---------------2
3--------------------1---------------3
4--------------------2---------------1
5--------------------2---------------3
具有Id 1,2的角色被映射到具有Id为1,2,3的许多权限。 许多权限如1,2,3属于许多角色,其ID为1和2
所以我认为这是多对多
我也认为它属于多对一,
role_permission_id role_id(FK) permission_id(FK)
----------------------------------------------------------
1--------------------1---------------1
2--------------------1---------------2
3--------------------1---------------3
4--------------------2---------------1
5--------------------2---------------3
具有Id 1,2的角色被映射到具有Id为1的权限。 id为1的权限属于许多具有id为1和2的角色
所以我认为这是多对一
我对如何判断映射感到困惑,有人可以清楚我的怀疑。 另外,我想知道Thumb规则在什么基础上需要确定映射。
感谢。
答案 0 :(得分:0)
Seems in your case its better to choose Many - to -Many raltionship. so You will have Permission, Role tables and junk table Permission_Role table. try this tutorial: [1]: http://www.mkyong.com/hibernate/hibernate-many-to-many-relationship-example/ Are you creating it from database? I can suggest easy ways for mapping...