【发布时间】:2020-10-13 15:03:52
【问题描述】:
在我的 symfony 项目(5.x 版本)中,我在 Metas 和 Tags 之间有一个简单的 ManyToMany 关系(没有定义 fetch 和 cascade)。
class Meta
{
...
/**
* @ORM\ManyToMany(targetEntity="Tag", mappedBy="meta")
* @ORM\OrderBy({"name" = "ASC"})
*/
protected $tags;
}
class Tag
{
...
/**
* @ORM\ManyToMany(targetEntity="Meta", inversedBy="tags")
* @ORM\JoinTable(name="app_meta_tag")
* @ORM\JoinColumn(name="meta_id")
*/
protected $meta;
}
我可以拥有 40 000 个具有相同标签的元数据(例如“test”)。
当我将“测试”标签添加到 Meta,然后持久化并刷新时,与此标签相关的所有 Meta 都被刷新......并由于内存限制而返回 500 错误。 这种行为似乎与教义文档相矛盾:https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/working-with-associations.html#persistence-by-reachability-cascade-persist
有人可以解释一下吗? 谢谢!
【问题讨论】:
标签: php symfony doctrine-orm