在QueryBuilder查询中,Doctrine2不能访问JoinColumn


Doctrine2 cannot access JoinColumn in QueryBuilder Query

我有一些相当简单的实体,其中一个是A, A有列parent注释

@ORM'JoinColumn(name="parentid", referencedColumnName="id", nullable=true)
@ORM'ManyToOne(targetEntity="A", inversedBy="children", cascade={"persist"})

基本上是对另一个a实体的引用。

当我尝试在这样的查询中查询这个实体a .parent时

$qb->select("A.parent")
// or
$qb->select("A.parentid")
// or
$qb->select("A.Parent")
$qb->leftJoin("A.parent", "parent")

我最终得到这个错误:

实体……没有名为parent/parentid

的字段或关联

如果定义是这样的

/**
* @ORM'JoinColumn(name="parentid", referencedColumnName="id", nullable=true)
* @ORM'ManyToOne(targetEntity="A", inversedBy="children", cascade={"persist"})
*/
private $parentField;

查询生成器应该是这样的

$qb
->select('a, p')
->from('AppBlogBundle:A', 'a')
->leftJoin('a.parentField','p');