【发布时间】:2015-09-15 10:56:09
【问题描述】:
我有这些实体:
- 用户
- 角色
- 权限
一个用户有很多角色,一个角色有很多权限。
检索用户拥有的一组权限的最佳方法是什么?
我需要一种方法来检查用户是否具有特定权限。
这是我目前所拥有的:
public boolean hasPermission(String permissionString) {
if (!authenticated) return false;
for (Role role : user.getRoles()) {
for (Permission permission : role.getPermissions()) {
if (permission.getName().equals(permissionString)) {
return true;
}
}
}
return false;
}
第二个相关的问题——我应该把检查用户是否拥有特定权限的代码放在哪里?
- 在用户实体中?
- 在 UserBean EJB 中?
- 在身份验证 JSF 托管 Bean 中?
【问题讨论】:
-
就是这样。问题是什么?使用您提供的信息和关系层次结构,这是循环的唯一方法。您在哪里需要帮助?
-
@KarthikR 只是想知道这是否会非常低效,而不是使用 EJBQL 或类似方法对表进行 JOIN。
标签: jpa join many-to-many