我遇到了以下问题:
我有一个实体查询与客户的一对一,单向关联:
/**
* @var Customer
*
* @ORM\OneToOne(targetEntity="Customer", cascade={"persist"}, fetch="EAGER")
* @ORM\JoinColumn(name="Customer", referencedColumnName="id", onDelete="SET NULL", nullable=true)
*/
protected $customer;
如果我通过数据库后端(PhpMyAdmin)删除客户,那么一切都很好:现场客户设置为空,但如果我用EntityManager删除客户对象,那么查询也会被删除,为什么?
$em = $this->getDoctrine()->getManager();
$em->remove($customer);
$em->flush();
我只想将其设置为null。
抱歉我的英文不好,我希望有人可以提供帮助;)
许多问候
答案 0 :(得分:1)
您注释映射错误。 试试这个
/**
* @ORM\ManyToOne(targetEntity="Customer")
* @ORM\JoinColumn(name="customer_id", referencedColumnName="id", onDelete="SET NULL")
*/
protected $customer;