0

私は2つのエンティティユーザーとアドレスを持っています

ユーザーはアドレスに 1 対 1 (一方向) にマップされ、両方とも cascade=persist および orphanRemoval=true での結合に使用される id/user_id フィールド (プライマリ) を持っています

$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;
    }
}
4

0 に答える 0