[英]Associations with Doctrine 2
我正在嘗試創建一個具有學說的實體,該實體與其他實體具有三個關聯
因此,某項與以下內容相關聯:
這是我的嘗試:
class Item{
/**
* @ManyToOne(targetEntity="Rssfeed")
*/
protected $rssfeed;
/**
*
* @ManyToMany(targetEntity="Location")
*/
protected $locations;
/**
*
* @ManyToMany(targetEntity="Tag")
*/
protected $tags;
}
現在
我應該如何更改我的代碼來實現這一目標?
您必須為$ rssfeed添加@JoinColumn並為其onDelete =“ CASCADE”以及為Location和Tag實體中的外鍵添加onDelete =“ SET NULL”。
/**
* @ManyToOne(targetEntity="Rssfeed")
* @JoinColumn(name="rssfeed_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $rssfeed;
對於Item實體中的每個關聯,將onDelete =“ SET NULL”添加到@JoinColumn批注。 在您的位置和標記實體中,找到JoinColumn批注,並為與“ Item”的關聯添加onDelete =“ SET NULL”。 在RssFeed實體下,找到每個@JoinColumn注解並添加onDelete =“ SET NULL”。 請注意,您也可以使用Doctrine級聯操作來實現此目的(例如,級聯= {“刪除”}等;但是,由於操作不是在RDBMS級別執行的,因此它的運行速度可能會大大降低。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.