ここで、データベース スキーマの設計方法について質問しました。
要約すると、連絡先とグループを含めることができるアドレス帳があります。グループにも連絡先を含めることができますが、グループと同じアドレス帳にある連絡先のみです。
アドレス帳アドレス
帳ID
連絡先
ID
アドレス帳 ID
グループ
ID
グループID
グループ To 連絡先
ID
アドレス帳 ID
連絡先 ID
グループ ID
多対多の関係テーブルにアドレス帳 ID を追加することで、アドレス帳が一致するように強制できます。ただし、私は休止状態に比較的慣れていないため、次のようになります。
@Entity
@Table(name = "Contact")
public class Contact
{
Addressbook addressbook;
//----bidirectional association
private List groups = new ArrayList();
//----
}
@Entity
@Table(name = "Group")
public class Group
{
Addressbook addressbook;
//----bidirectional association
private List contacts = new ArrayList();
//----
}
したがって、開始点として、上記の 2 つのテーブルがあり、コレクション内のオブジェクトを追加または変更するときにアドレス帳 ID の一致を強制する方法で、コレクションを hibernate によって制御する必要があります。