0

我有朋友和类别 - 每个朋友都属于一个类别。以下是它们之间的关系:

类别类中:

/**
 * @ORM\OneToMany(targetEntity="Friend", mappedBy="category", cascade={"remove"})
 * @ORM\OrderBy({"name" = "ASC"})
 */
protected $friends;

朋友班

/**
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="friends")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
 */
protected $category; 

我想要的是删除一个类别,当这种情况发生时,属于这个类别的朋友有一个类别 = null。有没有办法让它更优雅?

如您所见,我试过了cascade={"remove"},它很完美,但它也会删除朋友。有没有更好的解决方案,然后从当前类别中选择所有朋友,将他们的类别字段设置为空,然后删除该类别?

4

1 回答 1

2

您应该定义onDeletein@JoinColumn并将其设置为set null. 是有关此的文档。

于 2012-09-17T12:13:53.757 回答