【发布时间】:2011-09-25 18:59:56
【问题描述】:
我想知道这是否可以使用 Doctrine 注释来完成:
假设你有一个父类(映射的超类):
abstract class AbstractParent {
protected $foo;
}
作为两个子类:
class ConcreteChild1 extends AbstractParent {
/**
* @OneToOne(targetEntity="SomeEntity")
*/
// How can I map this to foo above?
}
class ConcreteChild2 extends AbstractParent {
/**
* @OneToOne(targetEntity="SomeOtherEntity")
*/
// How can I map this to foo above?
}
SomeEntity 和 SomeOtherEntity 都共享相同的父接口 (SomeEntityInterface) 但我不想仅将映射超类 AbstractParent 上的 $foo 字段映射到此父接口 (SomeEntityInterface ) 因为原则会产生性能开销(它会丢失延迟加载以映射层次结构中的高位类)(即我不想使用单表或类表继承)。
使用 YML 解决方案很简单,因为您仍然可以映射 foo,即使它位于父类上:
ConcreteChild1:
type: entity
oneToOne:
foo:
targetEntity: SomeEntity
和
ConcreteChild2:
type: entity
oneToOne:
foo:
targetEntity: SomeOtherEntity
那么我必须使用 YML 还是我缺少的东西可以让我通过注释映射 $foo?
提前非常感谢,我知道这有点难以理解!
【问题讨论】:
标签: php doctrine-orm symfony