ユーザーと特権クラスがあります。ユーザーは多くの特権を持つことができます。ここまでは順調ですね。
これらのユーザークラスとの関係に似たものがあります。しかし、これらすべてのものでユーザーを混乱させたくありません。
そこで、ユーザーと特権の関係を明示するのは良い考えだと思いました。ユーザーとの 1 対 1 の関係と特権との 1 対多の関係を持つクラス UserPrivilges を取得したいと思います。
可能であれば、フィードバックをいただければ幸いです。
あたりのTHX
私の理解が正しければ、複数の OneToMany アソシエーションを別のクラスにグループ化し、このクラスのインスタンスを User 内に配置するだけで済みます。ただし、意味的には、これらの関連付けは、ユーザーと他のエンティティ間の関連付けです。
その場合は、データベース スキーマをそのままにして、 User 内に埋め込まれたオブジェクトを使用して関連付けをグループ化する必要があります。
@Embeddable
public class UserPrivileges
@OneToMany
private Set<Privilege> somePrivileges;
@OneToMany
private Set<Privilege> someOtherPrivileges;
@OneToMany
private Set<Privilege> yetOtherPrivileges;
}
@Entity
public class User {
@Embedded
private UserPrivileges privileges;
}
詳細については、ドキュメントを参照してください。