学说可嵌入的继承
2022-08-30 21:22:17
是否可以对嵌入在学说实体中的价值对象使用继承?
我正在考虑的情况是:
我有一个实体,它具有嵌入值对象。该值对象具有以下层次结构:
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{...}
正确的方法是什么?甚至有可能这样做吗?