在范围内使用递归模型的无限循环

时间:2018-09-19 09:46:55

标签: sequelize.js

我使用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

有关信息,这不是由于某些数据本身引用的缘故。我测试了一个应该返回[]的查找请求,问题是相同的。

如果我不添加默认范围,则可以正常工作。孩子们没有被加载,但它可以工作。因此,我怀疑范围+包含是问题的根源。

在这种情况下如何避免无限循环?

0 个答案:

没有答案