我定义了以下的sequelize模型(使用seqeulize-typescript):
@Table
export class Entity extends Model<Entity> {
@Column
name: string;
@ForeignKey(() => Entity)
@Column
EntityId: number;
@BelongsTo(() => Entity)
Entity: Entity;
@BeforeCount
static enableRaw(options) {
options.raw = true;
}
}
正如你所看到它有一个自我引用,但除此之外,如果我运行以下查询,确实没有太多事情发生:
sequelize.models.Entity.findAll({
where: {
EntityId: hook.params.headers.entityid
},
include: [sequelize.models.Entity]
}).then(val => {
hook.result = val;
return hook;
})
然后我收到错误:
SequelizeDatabaseError:表名&#34;实体&#34;指定不止一次
如果我从查询中删除include: [sequelize.models.Entity]
,这就消失了。显然sequeliuze很困惑,我正在做一个自我JOIN,我想得到属于当前行的Entity
的所有子行。