原则2:通过值对象重新连接实体


Doctrine 2: reattaching entities through value objects

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

class Address
{
    /** @var string */
    protected $street;
    /** @var string */
    protected $city;
    /** @var Application'Domain'Model'Country */
    protected $country;
}

我需要将这个Address存储在一个PHP会话中(序列化),并在以后检索它。当我检索这个值对象时,我想将Country对象合并到当前的实体管理器中,以便这个国家与当前的工作单位同步。

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

我显然可以手动创建另一个Address与手动合并的Country:

$address = $_SESSION['address'];
$country = $em->merge($address->getCountry());
$address = new Address($address->getStreet(), $address->getCity(), $country);

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

据我所知,目前还没有这样做的文档方法