技术说明: Hibernate注释 - 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&gt;,但我怀疑我是否可以在hibernate中使用嵌套集合。
请帮帮我!
如果问题不可理解或无法表达,请告知我们。
答案 0 :(得分:2)
我的建议是在您的域模型RoleAssignment
中引入一个新概念:
class RoleAssignment {
private User user;
private Branch branch;
private Role role;
}
实体User
,Branch
和Role
应与RoleAssignment
建立1:N的关系。例如:
class User {
private Set<RoleAssignment> roleAssignemnts;
}