我对doctrine的InheritanceType JOINED有问题,我有一个父实体'template'和子实体'implementation',
/**
* Netvlies\Bundle\MisBundle\Entity\ItemTemplate
*
* @ORM\Entity
* @ORM\InheritanceType("JOINED")
* @ORM\DiscriminatorColumn(name="discriminator", type="string")
* @ORM\DiscriminatorMap({"template" = "ItemTemplate", "implementation" = "Item"})
*/
class ItemTemplate
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
...
/**
* Netvlies\Bundle\MisBundle\Entity\Item
*
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
*/
class Item extends ItemTemplate
{
/**
* @var \DateTime $created
*
* @ORM\Column(name="created", type="datetime")
*/
private $created;
/**
* @var \DateTime $updated
*
* @ORM\Column(name="updated", type="datetime")
*/
private $updated;
...
我能够毫无问题地创建和保存这两个实体。我也可以使用它的存储库findall()函数检索Item实体就好了。但是,当我对父实体执行相同操作时,我会收到包含父类和子类的结果集。