【发布时间】:2017-09-12 11:26:16
【问题描述】:
我有以下表格
User (has FK_RoleKey) -> UserRole (Role Key)
UserRoleResourceAccess(FK_RoleKey) -> UserRole(RoleKey)
UserRoleResourceAccess (has FK_ResourceKey) -> Resource (ResourceKey Key)
例如行:
User-> EmailId = user@abc.com | FK_RoleKey = 1
UserRole -> Role Key=1| RoleName= Admin
Resource -> Resource Key=1 | Resource name= "page1"
UserRoleResourceAccess -> FK_RoleKey =1 |FK_ResourceKey = 1
如何使用休眠条件查询获取给定用户的所有用户权限(角色和资源)。
简而言之:这是我试图在单个休眠查询中实现的目标
select * from User user
LEFT JOIN UserRole userRole
ON user.`FK_RoleKey` = userRole.`RoleKey`
LEFT JOIN UserRoleResourceAccess userRoleResourceAccess
ON userRoleResourceAccess.`FK_RoleKey` = userRole.`RoleKey`
LEFT JOIN `Resource` resource
ON resource.`ResourceKey` = userRoleResourceAccess.`FK_ResourceKey`
where user.`EmailID` = 'abc';
【问题讨论】: