0
我正在使用Doctrine 2.我有一個實體,其中有自我加入。兩列中加入如下:Cascade remove not working.cascade = {「remove」}
/**
* @ORM\ManyToOne(targetEntity="Entities\wall_post", inversedBy="shared_wallpost")
* @ORM\JoinColumn(name="wall_post_id", referencedColumnName="id")
*/
private $shared_from_wallpost;
/**
* @ORM\OneToMany(targetEntity="Entities\wall_post", mappedBy="shared_from_wallpost", cascade={"remove"})
*/
private $shared_wallpost;
比方說,有兩個職位:一個ID = 1001第二ID = 1002(有 wall_post_id = 1001)
現在我想,當我刪除1001,後與wall_post_id 1001得到 刪除。
爲此,我使用cascade = {「remove」}但它不起作用。 我的查詢,刪除wallpost對象:
//Removing record from table.
$qb_1 = $em->createQueryBuilder();
$qb_1->delete('\Entities\wall_post', 'wp');
$qb_1->where('wp.id = ?1');
$qb_1->setParameter('1', $wallpost_id);
$qb_1->getQuery()->execute();
$em -> flush();
映射看起來沒問題。刪除後是否沖洗實體管理器? – manix
@manix我已添加我的查詢刪除對象在我的答案請看看。我正在使用$ em-> flush;但沒用。謝謝。 – Simer
我不知道爲什麼你當前的代碼不工作,但你可以嘗試'onDelete =「CASCADE」'作爲替代 – FuzzyTree