Sequelize不会包括SELF JOIN

时间:2017-09-23 13:30:51

标签: sql postgresql sequelize.js

我定义了以下的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的所有子行。

0 个答案:

没有答案