我执行这样的简单查询来获取与剧集的关联:
$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);
这仍然是通过延迟加载加载剧集。 在这种情况下,有没有办法避免延迟加载?
非常感谢。
答案 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);