在删除级联引发错误时对Typescript进行排序

时间:2018-08-08 20:25:56

标签: typescript sequelize.js

我在Group和GroupAttendee之间建立了非常直接的FK关系。每当我致电Group.destroy()时,都会在GroupAttendee条目上遇到外键约束失败异常。我了解这些约束应该如何在数据库级别工作,但似乎无法创建sequelize-typescript?他们。

我包括模型的简化版本以演示我的设置:

import { Model, Column, AllowNull, HasMany, ForeignKey, DataType, BelongsTo } from "sequelize-typescript";
import { User } from "./User";

class Group extends Model<Group> {

  @AllowNull(false)
  @Column
  title: string;

  @AllowNull(false)
  @Column
  startDate: Date;

  @AllowNull(false)
  @Column
  endDate: Date;

  @HasMany(() => GroupAttendee)
  attendees: GroupAttendee[];
}

class GroupAttendee extends Model<GroupAttendee> {

  @ForeignKey(() => User)
  @Column(DataType.INTEGER)
  userId: number;

  @ForeignKey(() => Group)
  @Column(DataType.INTEGER)
  groupId: number;

  @BelongsTo(() => Group, {
    onUpdate: "CASCADE",
    onDelete: "CASCADE",
    hooks: true
  })
  group: Group;
}

有人让它起作用吗?

1 个答案:

答案 0 :(得分:1)

我认为您应该像这样:Group而不是GroupAttendee上层叠模型:

@HasMany(() => GroupAttendee , {
    onUpdate: "CASCADE",
    onDelete: "CASCADE",
    hooks: true
})
attendees: GroupAttendee[];