了解理论级联操作
我想检查一下我对Doctrine关联的级联运算的理解。出于这个问题的目的,我有两个模型:Customer和Insuree。 如果我在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; 如果我定义了InsureeandCustomer和set之间的逆多对多关系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;