doctrine 2,一对一关联,在添加/删除相关实体时更新一个实体中的主键

时间:2013-01-08 21:39:48

标签: doctrine doctrine-orm

我有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;
    }
}

0 个答案:

没有答案