首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于ManytoMany关系同步性的对称记忆问题

关于ManytoMany关系同步性的对称记忆问题
EN

Stack Overflow用户
提问于 2020-10-13 15:03:52
回答 2查看 214关注 0票数 4

在我的symfony项目(5.x版本)上,我在Metas和标记之间有一个简单的ManyToMany关系(没有提取,也没有级联定义)。

代码语言:javascript
运行
复制
class Meta
{
    ...

    /**
     * @ORM\ManyToMany(targetEntity="Tag", mappedBy="meta")
     * @ORM\OrderBy({"name" = "ASC"})
     */
    protected $tags;
}
代码语言:javascript
运行
复制
class Tag
{
    ...

    /**
     * @ORM\ManyToMany(targetEntity="Meta", inversedBy="tags")
     * @ORM\JoinTable(name="app_meta_tag")
     * @ORM\JoinColumn(name="meta_id")
     */
    protected $meta;
}

我可以有40000个具有相同标签的metas (例如“测试”)。

当我有“测试”标签到一个元,然后持久化和刷新,所有与这个标签相关的元被刷新.并返回一个500错误,因为内存限制。这种行为似乎与医生:https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/working-with-associations.html#persistence-by-reachability-cascade-persist的理论相矛盾。

有人能解释一下吗?谢谢!

EN

Stack Overflow用户

发布于 2020-10-15 15:36:52

当您将Doctrine中的两个实体关联在一起时,您有一个拥有方和一个反向方,在更新拥有方原则时,它将保存链接到的所有反转侧。相反的情况下,没有任何东西会被拯救。

在这里,拥有方是标记(反向-by=“标记”),这意味着只有在更新标记时才会进行更新。

您应该反转mappedBy和inversedBy目标类。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64337839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档