Noções básicas sobre operações em cascata de doutrina

Quero verificar meu entendimento das operações em cascata nas associações do Doctrine. Para o propósito desta pergunta, eu tenho dois modelos:Customer eInsuree.

Se eu definir um relacionamento muitos para muitos entre umCustomer eInsuree E definircascade{"all"}, Eu entendo que isso irá:

A adição de um novo segurado a um cliente manterá esse segurado e criará uma associação na tabela de junção.A remoção de um segurado da coleção destacará o segurado do cliente e o cliente do segurado.A exclusão do cliente excluirá todos os segurados associados ao cliente.

Esta é a definição da associação emCustomers.

/**
 * @ORM\ManyToMany(targetEntity="Insuree", inversedBy="customers", cascade={"all"})
 * @ORM\JoinTable(name="customer_insuree",
 *      joinColumns={@ORM\JoinColumn(name="customer_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="insuree_id", referencedColumnName="id")}
 * )
 */
protected $insurees;

Se eu definir o relacionamento inverso de muitos para muitos entre umInsuree eCustomer E definircascade{"all"}, Eu entendo que isso irá:

A adição de um novo cliente a um segurado persistirá e criará uma associação na tabela de junção.A remoção de um cliente da coleção destacará o cliente do segurado e destacará o segurado do cliente.A exclusão do segurado excluirá todos os clientes associados a ele.

Esta é a definição da associação emInsurees.

/**
 * @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"all"})
 */
protected $customers;

Se eu definir o relacionamento como cascata em persistir, mesclar e desanexar - excluir o segurado não excluirá todos os clientes associados - ele removerá apenas as associações entre o segurado e seus clientes?

/**
 * @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"persist", "merge", "detach"})
 */
protected $customers;

questionAnswers(1)

yourAnswerToTheQuestion