我有 2 个实体用户和地址
用户被一对一(单向)映射到地址,两者都有 id/user_id 字段(主要),用于与 cascade=persist 和 orphanRemoval=true 连接
当我做 $user = $em->find('\Classes\User',1); $user->removeAddress(); $em->flush();
它从数据库中删除了预期的地址部分, 但是为什么它在 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;
}
}