我正在使用Doctrine处理Symfony2。 我想知道如何改变" findBy"的行为。检索我的实体时的功能。
例如,如果您调用" findAll()",则会返回所有产品。
$entities = $em->getRepository('ShopBundle:Product')->findAll();
但是,如何减少查询数量,因为默认情况下,每次我想要将成员链接到连接列时,它都会创建一个新查询。因此,如果我获得100个实体,它将处理101个查询(1个获取所有实体,1个实体获取连接列)。 所以今天,我通过指定连接使用createQuery()函数。有没有办法配置有关findBy函数的东西来跳过createQuery方法?
提前致谢!
K4
答案 0 :(得分:0)
您可以通过以下方式获取此内容
public function findUser() {
$query = $this->getEntityManager()
->createQuery('SELECT us.id as id, us.name as user_name FROM Bundle:User us');
try {
return $query->getResult();
} catch (\Doctrine\ORM\NoResultException $e) {
return null;
}
}