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に追加してから、アクセス許可の割り当てを作成して追加する必要がありますか? permissionAssignments に設定しますか? 基本的に、userAttributes セットに追加しないと、Hibernate はデータベースに許可行を作成しますか?

permissionAssignment を追加してユーザーを更新するとどうなりますか? Hibernate は、追加しなかった理由を示す例外をスローしますか?

4

1 に答える 1

0

Role以下のように追加するメソッドを1つ追加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 に答える