【发布时间】:2015-06-15 13:14:57
【问题描述】:
是否可以对嵌入在学说实体中的值对象使用继承?
我现在考虑的情况是:
我有一个具有嵌入值对象的实体。该值对象具有以下层次结构:
class myEntity {
/** @Embedded(class = "baseValueObject") */
private $value_object;
...
}
class baseValueObject {...}
class valueObject1 extends baseValueObject{...}
class valueObject2 extends baseValueObject2{...}
如果我将我的实体定义为具有 baseValueObject 作为可嵌入对象,那么当我使用架构工具更新我的数据库架构时不会发生任何事情,所以我想这不是这样做的方法。
我正在考虑的另一个选项是在实体上使用单表继承来创建一个子实体,该实体使用一个值对象,另一个子实体用于另一个。像这样:
class myEntity {
/** @Embedded(class = "baseValueObject") */
private $value_object;
...
}
class myEntityA extends myEntity {
/** @Embedded(class = "valueObject1") */
private $value_object;
...
}
class myEntityB extends myEntity {
/** @Embedded(class = "valueObject2") */
private $value_object;
...
}
class baseValueObject {...}
class valueObject1 extends baseValueObject{...}
class valueObject2 extends baseValueObject2{...}
什么是正确的方法?甚至可以这样做吗?
【问题讨论】:
标签: php inheritance doctrine value-objects