在我的用户类
中使用以下特征时/**
* @var User
*
* @Gedmo\Blameable(on="create")
* @ORM\ManyToOne(targetEntity="User")
*/
protected $createdBy;
/**
* @var User
*
* @Gedmo\Blameable(on="update")
* @ORM\ManyToOne(targetEntity="User")
*/
protected $updatedBy;
每当我查询用户时,也会获取createdBy用户,这会以递归的方式继续...
因此,如果查询由A创建的用户C,则查询该用户C.将提取所有三个用户......
是否有办法禁用始终提取引用的用户?
答案 0 :(得分:0)
尝试更改ManyToOne声明以使用延迟加载:
* @ORM\ManyToOne(targetEntity="User", fetch="LAZY")
正如类似问题中所提到的,当使用延迟加载时,您可以避免在初始查询中加入该数据,而只会在访问该属性时查询该数据。 What is the difference between fetch="EAGER" and fetch="LAZY" in doctrine