我有2个具有n-n关系的实体。引用实体有一些额外的字段,所以我必须改变这样的3个实体之间的关系。用附加字段删除多对多
User --(1-n)-- UserAddress --(n-1)-- Address
在用户实体我有一个映射到UserAddress:
<one-to-many target-entity="UserAddress" mapped-by="user" field="addresses">
<cascade>
<cascade-all/>
</cascade>
</one-to-many>
我的用户实体:
protected $addresses;
public function addAddress(UserAddress $address)
{
$this->addresses[] = $address;
return $this;
}
public function removeAddress(UserAddress $address)
{
$this->addresses->removeElement($address);
}
public function getAddresses()
{
return $this->addresses;
}
public function __construct()
{
$this->addresses = new ArrayCollection();
}
当我试图通过$用户删除从用户的地址收集的地址 - > removeAddress($ address),重新检查$地址数组,该地址已被删除。但在数据库中它仍然存在。我期望删除数据库中的两个字段,一个在UserAddress表中,另一个在Address中。我怎样才能做到这一点?
很简单cascade = {“remove”}两者都不够? – user1954544
是的,那是真的 – Flow