1

技术说明:Hibernate annotation-3.4.0.GA java 1.5

:users_roles_branches :user_id、role_id、branch_id

为公司的不同分支机构分配不同的角色。

现在我有一个 java pojo 类

     public class branch
     {
                @ManyToMany
             @JoinTable(name = "users_roles_branches", joinColumns = {   @JoinColumn(name="branch_id") }, inverseJoinColumns = { @JoinColumn(name = "role_id") })
             @MapKeyManyToMany(joinColumns = { @JoinColumn(name = "user_id", unique = false) })

                public Map<User, Role> getUserRoleMap() {
          return userRoleMap;
           }
     } 

基本要求是检索分配给分支中不同用户的角色列表。

面临的问题:由于可以为一个用户分配多个角色,因此 map 不适用于用户角色映射数据。

一种解决方案可能是 Map>,但我怀疑我是否可以将嵌套集合与休眠一起使用。

请帮帮我!

如果问题无法理解或无法代表形式,请告诉我。

4

1 回答 1

2

我的建议是在你的领域模型中引入一个新概念RoleAssignment

class RoleAssignment {
  private User user; 
  private Branch branch;
  private Role role;
}

实体UserBranch并且Role应该与 1:N 关系RoleAssignment。例如:

class User { 
  private Set<RoleAssignment> roleAssignemnts;
}
于 2010-12-15T06:16:36.687 回答