我很難理解級聯操作的學說手冊explanation,需要有人幫助我理解簡單的ManyToOne關係中的選項。OneToMany的學說級聯選項
在我的應用程序中,我有一個名爲Article的表/實體,它有一個外鍵字段引用名爲Topic的表/實體中的「id」字段。
當我創建新文章時,我從下拉菜單中選擇主題。這會在文章表中的「topic_id」外鍵字段中插入一個整數。
我有$主題關聯的實體條這樣設置:
/**
* @ManyToOne(targetEntity="Topic")
* @JoinColumn(name="topic_id", referencedColumnName="id", nullable=false)
*/
private $topic;
的主題實體沒有關於文章實體的任何往復註解。主題不關心什麼文章引用它們,並且當引用該主題的文章被刪除時什麼都不需要發生。
因爲我沒有在Article實體中指定級聯操作,所以當我嘗試創建新的Article時,Doctrine拋出一個錯誤:「通過未配置爲級聯持久操作的關係找到新實體。堅持新的實體或配置級聯堅持操作的關係。「
所以我知道我需要選擇級聯操作才能包含在Article實體中,但是如何知道在這種情況下選擇哪種操作?
從閱讀Doctrine手冊,「分離」聽起來像是正確的選擇。但研究別人的類似問題here和here讓我覺得我想用「堅持」來代替。
任何人都可以幫助我理解什麼「堅持」,「刪除」,「合併」和「分離」意味着就像我所描述的一個簡單的ManyToOne關係?
+1爲好問題。希望有人會盡快回答,我想了解更多關於級聯選項。目前缺乏關於Doctrine2的書籍或文檔。 – gremo