1

我有以下类结构:

public class User{
    Set<UserAttribute> userAttributes;
}

public class Role implements/extends UserAttribute {
    Set<PermissionAssignment> permissionAssignments;
}

public class PermissionAssignment {
    Permission permission;
}

public class Permission implements/extends UserAttribute {
}

因此,用户具有集合或属性。属性可以是角色或权限。属性存储在同一个表中,我使用鉴别器。然后该角色具有一组权限分配并且权限分配具有权限。假设我在 Hibernate 会话中有 User 类的实例。如果我想将新的权限分配添加到权限分配集中,我必须做什么?创建权限分配是否足够,然后创建权限并调用 permissionAssignments.add(permission) 然后将创建所有必要的行 - 权限分配和权限,还是我必须将创建的权限添加到 userAttributes 然后创建权限分配并添加它到权限分配设置?那么当我不将它添加到 userAttributes 集时,基本上 Hibernate 会在数据库中创建权限行吗?

如果没有,当我添加权限分配并更新用户时会发生什么?Hibernate 会抛出任何显示为什么不添加它的异常吗?

4

1 回答 1

0

在您Role添加一种方法中添加PermissionAssignment如下:

public void addPermissionAssignment(PermissionAssignment permissionAssignment){
   if(this.permissionAssigments == null){
       this.permissionAssigments = new HashSet<PermissionAssigment>();
   }
   permissionAssignment.setRole(this);//this will set the parent
   this.permissionAssigmentsadd(permissionAssignment);
}

使用上述方法添加PermissionAssignmentRole.

Hibernate 将负责其余的工作。即创建Role和设置生成的主键作为外键PermissionAssignment

于 2012-11-12T20:44:59.447 回答