0

ManyToMany 関係を持つ 2 つのテーブルがあります。このリレーションシップにいくつかのフィールドを追加する必要があったため、2 つのテーブルのそれぞれと ManyToOne リレーションシップを持つ新しいエンティティを作成しました。私が抱えている問題は、関係エンティティを削除することです。2 つのテーブルのどちらのエントリも削除したくありません。関係を削除したいだけです。関連エンティティをセットアップするために私が行ったことは、ここでほとんど説明されています。

Doctrine2: 参照テーブルに余分な列がある多対多を処理する最良の方法

関係を削除するために、他の 2 つのテーブル エントリのそれぞれから関連要素を削除し、関連エンティティでそれらのテーブルへの参照を null に設定しようとしました。それはうまくいかないようです。Doctrine はクエリを実行して関連テーブルのエントリを更新し、両方の外部キーを null に設定しようとします。それへのすべての参照が削除された場合、関連するテーブルのエントリが削除されると思います。

私の実体を見たいかどうか、またはこれが現状で十分な意味があるかどうか教えてください.

4

1 に答える 1

0

実際には、「join-table」として機能するエンティティを削除するとうまくいきます。何もカスケードされるべきではありません。

だからあなたが次のような関係を持っていると仮定します

User <- UserGroup -> Group

UserGroupエンティティを削除する必要があります。

Userまたはを削除し、カスケード永続化操作を正しくGroup設定している場合も、になります。また、異なる要素または要素に割り当てられないようにするために使用することもできます。UserGrouporphanRemovalUserGroupUserGroup

于 2012-07-15T18:02:50.227 に答える