11

「属性」エンティティに対して次の関係を持つ所有エンティティがあります。

/**
* @ORM\OneToMany(targetEntity="Attribute", mappedBy="entity", cascade={"persist", "remove", "merge"})
**/
protected $attributes;

一方、所有エンティティ関係は次のようになります。

/**
* @ORM\ManyToOne(targetEntity="Entity", inversedBy="attributes")
* @ORM\JoinColumn(name="entity_id", referencedColumnName="id")
*/
protected $entity;

エンティティのインスタンスを作成したら、それに属性を追加して保存します。それはすべて正常に動作します。エンティティから 1 つの属性を削除して保持すると、その属性はデータベースで削除されず、更新時に再表示されます。

誰にもアイデアがありますか?

4

2 に答える 2

3

オーファン除去を使用する場合は注意してください。

要素を削除してメイン エンティティで refresh を呼び出した場合、その要素は doctrine の内部孤立削除配列から削除されません。

後でフラッシュが呼び出されると、そのエントリがデータベースから削除され、更新が無視されます。

これは私にはバグのように見え、アプリ内の多くの製品の画像が失われました。エンティティの削除がスケジュールされた後、これらのエンティティに対して永続化を再度呼び出すリスナーを実装する必要がありました。

于 2015-02-09T08:50:49.863 に答える