在@Embedded实体中使用关联

Yav*_*vin 4 symfony doctrine-orm

我对doctrine embeddables有问题,并在其中使用关联.当我添加@ManyToOne到嵌入式实体原则时,不要address_city在用户表中创建列,但是address_street会创建列.我接缝有点奇怪,因为没有错误,城市是默默无闻的.

代码看起来像这样:

/** @Entity */
class User
{
    /** @Embedded(class = "Address") */
    private $address;
}

/** @Embeddable */
class Address
{
    /** @Column(type = "string") */
    private $street;

    /** @ManyToOne(targetEntity = "City") */
    private $city;
}

/** @Entity */
class City
{
    /** @Column(type = "string") */
    private $name;
}
Run Code Online (Sandbox Code Playgroud)

Yav*_*vin 6

2015.01.11的状态:

目前学说不支持这种情况.它在教义问题跟踪现在描述在这里

这是解释:

我们现在不支持嵌入式协会...

它可能暂时不会实现,因为embeddables(在我们的愿景中)适合ValueObjects的用例.ValueObjects(通常)应该包含可序列化数据,而实体引用不是可序列化数据.

  • 我认为这只是一个借口,因为这个功能非常重要而且不会让整个嵌入式内容不完整.我真的很失望. (2认同)