1

在我的用户类中使用以下特征时

/**
 * @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 用户也会被获取,这会递归地进行..

因此,如果由 B 创建的用户 C,由 A 创建的用户 C 被查询。将获取所有三个用户...

有没有办法禁用始终获取引用的用户?

4

1 回答 1

0

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

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

正如在类似问题中提到的,当使用延迟加载时,您避免在初始查询中加入该数据,而是仅在访问属性时查询它。 学说中 fetch="EAGER" 和 fetch="LAZY" 有什么区别

于 2016-05-10T00:33:20.517 回答