我使用Sequelize(版本-m5.0.0-beta.9)+ Postgresql + sequelize-typescript
我在使用递归模型时遇到了麻烦。我有Commentaire模型,可以有相同类型的孩子。
代码:
@DefaultScope({
include: [
{ model: () => Commentaire, as: 'children' },
]
})
export class Commentaire extends Model<Commentaire> {
@ForeignKey(() => Commentaire)
@Column
public commentaireParentId: number;
@HasMany(() => Commentaire, 'commentaireParentId')
public children: Array<Commentaire>;
}
尝试在此模型上发出findAll
请求时,出现无限循环错误:
RangeError: Maximum call stack size exceeded
有关信息,这不是由于某些数据本身引用的缘故。我测试了一个应该返回[]的查找请求,问题是相同的。
如果我不添加默认范围,则可以正常工作。孩子们没有被加载,但它可以工作。因此,我怀疑范围+包含是问题的根源。
在这种情况下如何避免无限循环?