【问题标题】:How to disable the automatic loading of all related entities during serialization?如何在序列化过程中禁用所有相关实体的自动加载?
【发布时间】:2019-06-10 20:27:13
【问题描述】:

带有 JMS 的 Symfony 4。

Parent 类与 OneToMany 子类相关联。在存储库中,我得到了一些父母和一些孩子(左加入条件)。但是,当尝试序列化父级时,JMS 会自动从数据库中获取所有(!)子级,从而对数据库进行额外的查询。我怎样才能避免这种情况? JMS 配置中是否有任何选项?

我唯一想到的是VirtualProperty() 版本,我将在其中过滤已经在实体中的子项。但这不是很有效。

UPD。 我想序列化这个字段,但不是所有的子实体。只有满足条件。在存储库中,我执行->leftJoin('p.children', 'c', 'WITH', 'c.foo = bar'),但序列化程序通过单独的请求加载不在条件中的元素。这就是问题

【问题讨论】:

标签: symfony jms jmsserializerbundle


【解决方案1】:

使用序列化组来选择您想要的属性并使用 maxDepth 限制子级?

【讨论】:

  • 不,我想序列化这个字段,但不是所有的子实体。只有满足条件。在存储库中,我执行->leftJoin('p.children', 'c', 'WITH', 'c.foo = bar'),序列化程序通过单独的请求加载不在条件中的元素。这就是问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多