这两者之间有什么区别?
/**
* @ORMManyToOne(targetEntity="Category", inversedBy="products",cascade={"remove"})
* @ORMJoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
和
/**
*
* @ORMManyToOne(targetEntity="Category", inversedBy="products")
* @ORMJoinColumn(name="category_id", referencedColumnName="id", onDelete="CASCADE"))
*/
protected $category;
谢谢!
第一个命令告诉ORM执行级联。因此,条令将把数据保存在内存中,以执行自己的删除级联。
第二个将告诉数据库执行onDelete级联,从条令中卸载过程。
请记住,第一个选项将在内存中保留数组/关联以执行删除级联,这可能非常繁重。
第一个参数的典型用例是数据模型图不太重,并且您确实希望弯曲每个实体生命周期事件,即使是那些使用级联删除的事件。
第二种方法的缺点是,您无法弯曲这些实体生命周期事件,但如果您的数据模型/图真的太重,这可能是处理级联的唯一选择。