3
我有一个用户类与另一个实体结果的单一对一的关联如何避免Symfony2中自动加载一个一对一的关系
一切工作正常,但只要我加载一组用户,我可以在剖析器中看到,对于每个用户,symfony执行查询以加载他的结果。
我不需要任何地方的结果,我手动检索它,当我需要。 我开始相信symfony会自动加载与实体的一对一关系,但没有找到如何避免它。
我的课:
class User extends BaseUser {
/**
* @ORM\OneToOne(targetEntity="Result", mappedBy="user", cascade={"all"}, orphanRemoval=TRUE)
*/
protected $result;
}
class Result {
/**
* @ORM\OneToOne(targetEntity="User", inversedBy="result")
* @ORM\JoinColumn(name="id_user", referencedColumnName="id")
*/
protected $user;
}
----- -----编辑
我发现当用户实体在formbuilder被加载,它才会发生:
$builder
->add('user', 'entity', array(
'class' => 'ThemBaseBundle:User',
'query_builder' => function($repository) {
return $repository->createQueryBuilder('a')
->orderBy('a.lastName', 'ASC');
},
'property' => 'fullName'
))
;
我试过了,但仍然加载结果 – grimmlink 2012-01-05 06:51:14
我发现它只发生在窗体中,我编辑了我的问题。 – grimmlink 2012-01-05 07:11:26
我发现的唯一解决方案是将加入列放在用户实体上,而不是在结果实体上。 这是一个相当奇怪的行为,但至少我现在没有得到太多的查询。 – grimmlink 2012-01-05 08:07:39