symfony - 如何在序列化过程中禁用所有相关实体的自动加载?
问题描述
带有 JMS 的 Symfony 4。
Parent 类与 OneToMany 子类相关联。在存储库中,我得到了一些父母和一些孩子(左加入条件)。但是,当尝试序列化父级时,JMS 会自动从数据库中获取所有(!)子级,从而对数据库进行额外的查询。我怎样才能避免这种情况?JMS 配置中有任何选项吗?
我唯一想到的是VirtualProperty()
版本,我将在其中过滤已经在实体中的孩子。但这不是很有效。
升级版。我想序列化这个字段,但不是所有的子实体。只有满足条件。在存储库中我这样做->leftJoin('p.children', 'c', 'WITH', 'c.foo = bar')
了,但是序列化程序通过单独的请求加载不在条件中的元素。这就是问题
解决方案
使用序列化组来选择您想要的属性并使用 maxDepth 限制子级?
推荐阅读
- azure - 如何将数据从 Azure SQL 流式传输到 Azure Blob/事件中心?
- c# - 在 UWP/C# 上调用 Finalizer 的线程
- mongodb - 如何将 mongdb UUID() 转换为字符串?
- ios - UIView convert(_:to:) 方法的渐近运行时复杂度是多少?
- javascript - 你能推迟 SVG 中的脚本吗?
- android - 如何在 mutlti 模块项目中正确实现这种依赖关系?
- firebase - 如何使用 google-cloud-firestore 获得工作的 osgi-bundle?
- javascript - 如果记录不存在则插入,如果存在则更新
- amazon-web-services - STS AssumeRole 错误:AWS 访问密钥“我们的记录中不存在”
- java - Kafka Producer Java 和 .NET CORE 2.1