理解教义级联操作
我想检查一下我对教义关联的级联操作的理解。出于这个问题的目的,我有两个模型:和。Customer
Insuree
如果我在 a 和 和 set 之间定义一个多对多关系,我明白这将:Customer
Insuree
cascade{"all"}
- 向客户添加新的投保人将保留此投保,并在联接表中创建关联。
- 从集合中删除被保险人会将投保人与客户分离,并将客户与投保人分离。
- 删除客户将删除与客户关联的所有保险。
这是 上的关联定义。Customers
/**
* @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;
如果我定义一个 和 和 集合之间的反数对多关系,我明白这将:Insuree
Customer
cascade{"all"}
- 将新客户添加到被保险人将保留此客户并在联接表中创建关联。
- 从集合中删除客户会将客户从被保险人中分离出来,并将被保险人与客户分离。
- 删除被保险人将删除与其关联的所有客户。
这是 上的关联定义。Insurees
/**
* @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"all"})
*/
protected $customers;
如果我随后将关系定义为持久,合并和分离时级联 - 删除保险不会删除所有关联的客户 - 它只会删除被保险人与其客户之间的关联?
/**
* @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"persist", "merge", "detach"})
*/
protected $customers;