首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FOSElasticaBundle: ManyToMany关系

FOSElasticaBundle: ManyToMany关系
EN

Stack Overflow用户
提问于 2018-09-03 20:30:26
回答 1查看 452关注 0票数 1

我正在尝试在symfony 4项目中使用FOSElasticaBundle,但我遇到了一些问题。

我有一个实体"Users",在属性“segments”中有下一个注释:

* @var Collection $segments * @ORM\ManyToMany(targetEntity="App\Entity\Segment", mappedBy="users", cascade={"persist", "remove"})

在fos_elastica.yaml文件中进行映射的正确形式是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-10-11 18:31:20

我建议你在你的用例中思考,然后决定你将使用哪些相关的实体来进行搜索。一旦决定,你可以做两件事:

选项A,使用嵌套字段。更简单,但如果更新子(相关)实体,Elasticsearch索引将不会更新。你必须确保这发生在你的代码中。例如,每次更新子实体时,都会在父实体中设置一个时间戳,这样FosElasticaBundle就可以捕获该字符并运行实体序列化程序,这样子实体就会被序列化。

选项B,在Elasticsearch中使用子父关系。在这种情况下,FosElasticaBundle将为每个Doctrine实体正确地跟踪您的实体更改,因此您不需要在代码中管理它。

在这两种情况下,你的多对多关系变成了两个一对多的关系。在选项A中,这是由在父文档中嵌入子文档的序列化程序完成的。在第二种情况下,它被转换为父子关系。

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

https://stackoverflow.com/questions/52149845

复制
相关文章

相似问题

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