学说2:通过值对象重新附加实体

时间:2011-12-30 23:48:17

标签: php orm doctrine-orm persistence entitymanager

我正在使用Doctrine 2,并且有一个Address值对象:

class Address
{
    /** @var string */
    protected $street;

    /** @var string */
    protected $city;

    /** @var Application\Domain\Model\Country */
    protected $country;
}

我需要将此Address存储在PHP会话中(序列化),并在以后检索它。当我然后检索此值对象时,我希望将Country对象合并到当前的实体管理器,以便此Country与当前工作单元同步。

是否可以将此值对象“合并”到当前的实体管理器,就像我在cascade="merge"的常规实体上所做的那样,将Country实例替换为当前实例?< / p>

我显然可以手动合并Address

手动创建另一个Country
$address = $_SESSION['address'];
$country = $em->merge($address->getCountry());
$address = new Address($address->getStreet(), $address->getCity(), $country);

但是我想知道我是否错过了Doctrine中的一个功能,允许我直接合并VO?

1 个答案:

答案 0 :(得分:1)

据我所知,目前没有记录的方法可以做到这一点。