场景描述
两个业务模型:Product 和 ProductCategory,一个 ProductCategory 下有多个 Product。
现在需要对外提供返回包含关联数据在内的接口。例如:category/index 接口返回:
{
"id":1,
"category_name": "xxx",
"products": [
{...},
{...},
...
]
}
但是我自作聪明的给 Product 模型也加上了到 ProductCategory 的映射,导致了一个无限的循环:
产品的分类,分类的产品,产品的分类…
Product => ProductCategory => Product …
最终导致了内存耗尽。
解决方案
解决方案很简单,断掉任意一个映射就好了。比如断掉 Product 到 ProductCategory 的映射,如果需要产品的分类名称数据,单独添加自定义字段 category_name 匿名返回。