0
试图利用继承,我创建了以下实体:实体继承不包括OneToOne-关系
/**
* @ORM\Table(name="persons")
* @ORM\Entity()
*/
class Person
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255)
*/
protected $name;
/**
* @ORM\OneToOne(targetEntity="Image", cascade={"persist"})
* @ORM\JoinColumn(name="image_id", referencedColumnName="id")
*/
protected $image;
}
/**
* @ORM\Table(name="actors")
* @ORM\Entity()
*/
class Actor extends Person
{
/**
* @ORM\Column(name="character", type="string", length=255)
*/
private $character;
}
/**
* @ORM\Table(name="images")
* @ORM\Entity()
*/
class Image
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(name="path", type="string", length=255)
*/
private $path;
}
几乎完美的作品。生成的actors
-table包含所有persons
-字段,但image
-关系除外。我试图改变关系到ManyToOne
,这没有帮助。
如何使Actor
-entity也继承所有连接的字段?如果上述情况不理想,我愿意接受其他解决方案。
您可以尝试查看**表继承**,这是学说支持的东西。看看[类表继承](http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html#class-table-inheritance) – Artamiel