为什么DoctrineExtensions Blameable急切地获取所有created_by用户

时间:2016-05-09 19:03:57

标签: doctrine symfony doctrine-extensions

在我的用户类

中使用以下特征时
/**
 * @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.将提取所有三个用户......

是否有办法禁用始终提取引用的用户?

1 个答案:

答案 0 :(得分:0)

尝试更改ManyToOne声明以使用延迟加载:

* @ORM\ManyToOne(targetEntity="User", fetch="LAZY")

正如类似问题中所提到的,当使用延迟加载时,您可以避免在初始查询中加入该数据,而只会在访问该属性时查询该数据。 What is the difference between fetch="EAGER" and fetch="LAZY" in doctrine