查询构建器和实体继承

时间:2013-08-26 11:35:53

标签: symfony inheritance doctrine entity query-builder

我有实体:

abstract class AbstractEntity
{
    private $someField;
}

/**
 * ...
 * @ORM\Entity(repositoryClass="ConcreteEntityRepository")
 */
class ConcreteEntity extends AbstractEntity
{
    private $otherField;
}

class ConcreteEntityRepository extends EntityRepository
{
    public function getSomething()
    {
        $qb = $this->getEntityManager()->createQueryBuilder()
            ->select('t')
            ->from('MyBundle:ConcreteEntity', 't');

        $result = $query->getResult();
    }
}

结果将是正确的字段数,但父类的值将为null。 我怎样才能正确获取所有字段?

当我尝试使用时:

->select('t.someField') // Error

->select('t.otherField') // Good

1 个答案:

答案 0 :(得分:1)

我的猜测是你不能在抽象类中使用私有属性。尝试使用受保护的。

文档也是如此:http://docs.doctrine-project.org/en/latest/reference/inheritance-mapping.html