Doctrine2空集合创建不必要的查询


Doctrine2 empty collection creates unnecessary query

我有一个具有images集合的Doctrine2实体。以下是我的查询:

$qb = $this->createQueryBuilder('page');
    $qb->select('page, image');
    $qb->where('page.id = ?1')
       ->leftJoin('page.images', 'image')
       ->setParameter(1, $id);
$result = $qb->getQuery()->getOneOrNullResult();

当我调用$result->getImages()并且images集合为空时,对数据库有一个额外的调用。我该如何预防呢?

我在本地查询中遇到了同样的问题,我通过将新映射的集合标记为初始化来解决它。

if($result->getImages() instanceof PersistentCollection)
    $result->getImages()->setInitialized(true);
}

原则不再调用DB来检查是否有子节点。巨大的优化!