4

私のデータベースには、多対多の関係を持つユーザーとユーザー グループがあります。User には UserGroup のセットがあり、UserGroup ドメイン オブジェクトは User を認識しません。

<class name="User" table="UserTable">
    <set name="UserGroup" cascade="save-update" access="field.pascalcase-underscore" table="User2UserGroup">
        <key column="User_Id" />
        <many-to-many class="UserGroup" column="UserGroup_Id" />
    </set>
    ...

私が達成しようとしているのは、ユーザーまたはユーザー グループのいずれかを削除するときに、nhibernate がジャンクション テーブルから相関関係を削除することです。さらに、ユーザーとグループはの子オブジェクトです。これをドメインと呼びましょう。ドメインはcascade="all-delete-orphans".

User<->UserGroup の関係に戻ります。正しく理解していれば、関連するオブジェクト自体ではなく、2 つのオブジェクト間の関連付けを削除したいだけなので、削除を伴うカスケード形式は使用できません。(孤児であっても、グループは消滅しません。また、グループを持たないユーザーは、私の世界では有効なものです。彼には何もする権利がありません。)

イベント/インターセプターを確認する必要がありますか? または、マッピングを制御することで達成したいことを行うことができますか?

4

1 に答える 1

2

それをサポートするデータベースを使用している場合、外部キー制約の形式でデータベース自体にカスケードを設定できませんか?

于 2009-10-15T13:32:32.817 に答える