停止提取关联

时间:2012-08-12 06:55:31

标签: doctrine-orm

我执行这样的简单查询来获取与剧集的关联:

$query = $this->getEntityManager()
            ->createQuery('
        SELECT p,e
        FROM AcmeDemoBundle:Place p
        LEFT JOIN p.episodes e
        WHERE p.id = :id'
        )
            ->setParameter('id',$id);

这是一个简单的组合:

 /**
 * @ORM\OneToMany(targetEntity="Episode", mappedBy="place")
 */
protected $episodes;

这很有效。现在,我不想获取剧集,而只想获取地点对象(而不是其他):

$query = $this->getEntityManager()
            ->createQuery('
        SELECT p
        FROM AcmeDemoBundle:Place p
        LEFT JOIN p.episodes e
        WHERE p.id = :id'
        )
            ->setParameter('id',$id);

这仍然是通过延迟加载加载剧集。 在这种情况下,有没有办法避免延迟加载?

非常感谢。

1 个答案:

答案 0 :(得分:1)

像这样:

$query = $this->getEntityManager()
            ->createQuery('
        SELECT p
        FROM AcmeDemoBundle:Place p
        WHERE p.id = :id'
        )
            ->setParameter('id',$id);

$query->setHint(Query::HINT_FORCE_PARTIAL_LOAD, true);