教义2在树上离开了

时间:2016-08-28 01:27:10

标签: doctrine-orm doctrine doctrine-1.2 doctrine-extensions

我有两个实体:人物和文件

一个人可以有n个孩子:

/**
 *
 * @ORM\ManyToOne(targetEntity="People")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="dad_id", referencedColumnName="id")
 * })
*/
private $dad;


/**
 *
 * @ORM\OneToMany(targetEntity="People", mappedBy="dad")
*/
private $childrens;

一个人可以拥有n份文件:

的DocumentEntity:

/**
 *
 * @ORM\ManyToOne(targetEntity="People")
 * @ORM\JoinColumns({
 *   @ORM\JoinColumn(name="people_id", referencedColumnName="id")
 * })
 */
private $people;

我希望在一个查询中获取所有人(及其子女)及其类型为License的文档:

$qb = $this->em->getRepository('People')->createQueryBuilder('p');
$qb
    ->select(array('p','d'))
    ->leftJoin('p.documents','d','WITH','d.type = :type')
    ->setParameter('type','license')      
;

$peoples = $qb->getQuery()->getResult();

很好,如果我调用$ people-> getDocuments()只返回类型为'License'的文档。但当我这样做'$ people-> getChildrens()[0] - > getDocuments()'为我返回这个人的所有文件。

如何在树形结构上进行“左连接”级联?

0 个答案:

没有答案