Doctrine加入了继承,存储库findall返回父对象和子对象

时间:2012-05-21 09:41:03

标签: php doctrine doctrine-orm

我对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实体就好了。但是,当我对父实体执行相同操作时,我会收到包含父类和子类的结果集。

0 个答案:

没有答案