我正在使用Symfony:2.8和doctrine-bundle:1.5。
我的学说关联映射是一对多,自引用双向One-To-Many, Self-referencing。
这是我的代码:
/**
* @OneToMany(targetEntity="Ranking", mappedBy="parent")
*/
private $children;
/**
* @var Ranking
*
* @ManyToOne(targetEntity="Ranking", inversedBy="children")
*
* @JoinColumn(name="parent_id", referencedColumnName="id", onDelete="cascade")
*/
private $parent;
当我尝试删除行时,出现此错误:一般错误:3008外键级联删除/更新超过了最大深度15。”
我的问题是我有什么办法可以增加教义的最大深度。 预先感谢。
答案 0 :(得分:1)
不,您不能。 实际上,这是MySQL的限制,而不是教义。
https://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html
如果ON UPDATE CASCADE或ON UPDATE SET NULL递归以更新相同 它先前在层叠期间已更新的表,其行为类似于 限制。这意味着您不能使用自引用的ON UPDATE CASCADE或ON UPDATE SET NULL操作。这是为了防止无限 级联更新导致的循环。自我引用的DELETE 另一方面,可以使用SET NULL,也可以使用自引用ON 删除级联。 级联操作嵌套的数量不能超过15 水平深。