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á:
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á:
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;