我有2个实体 用户和地址
用户被映射为一对一(单向)到地址, 两者都有id / user_id字段(主要),用于连接 with cascade = persist and orphanRemoval = true
当我这样做的时候 $ user = $ em-> find('\ Classes \ User',1); $用户> removeAddress(); $ EM->冲洗();
它从预期的数据库中删除地址部分, 但为什么在User对象中将id值更新为null?
/**
* @Entity
*/
class User
{
/** @Id @Column(type="integer") @GeneratedValue */
private $id;
/** @Column(length=100) */
public $name;
/** @OneToOne(targetEntity="Address", orphanRemoval=true)
* @JoinColumn(name="id", referencedColumnName="user_id")
*/
public $address;
public function removeAddress()
{
unset($this->address);
}
}
/**
* @Entity
*/
class Address
{
/** @Id @Column(type="integer") */
public $user_id;
/** @Column(length=100) */
public $street_name;
public function __construct($id, $name) {
$this->id = $id;
$this->name = $name;
}
}