删除级联抛出错误时对Typescript进行续集
我在Group和GroupAttendee之间建立了非常直接的FK关系。每当我调用删除级联抛出错误时对Typescript进行续集,typescript,sequelize.js,Typescript,Sequelize.js,我在Group和GroupAttendee之间建立了非常直接的FK关系。每当我调用Group.destroy()时,GroupAttendee条目上就会出现一个外键约束失败异常。我知道这些约束应该如何在数据库级别工作,但我似乎无法让sequelize typescript创建?/enforce?他们 我提供了一个简化版的模型来演示我的设置: import { Model, Column, AllowNull, HasMany, ForeignKey, DataType, BelongsTo }
Group.destroy()
时,GroupAttendee条目上就会出现一个外键约束失败异常。我知道这些约束应该如何在数据库级别工作,但我似乎无法让sequelize typescript创建?/enforce?他们
我提供了一个简化版的模型来演示我的设置:
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;
}
import{Model,Column,AllowNull,HasMany,ForeignKey,DataType,BelongsTo}来自“sequelize typescript”;
从“/User”导入{User};
类组扩展模型{
@AllowFull(假)
@纵队
标题:字符串;
@AllowFull(假)
@纵队
起始日期:日期;
@AllowFull(假)
@纵队
结束日期:日期;
@有许多(()=>GroupAttendee)
与会者:GroupAttendee[];
}
类GroupAttendee扩展模型{
@外键(()=>用户)
@列(DataType.INTEGER)
userId:number;
@外键(()=>组)
@列(DataType.INTEGER)
groupId:编号;
@属于(()=>组{
更新:“级联”,
onDelete:“级联”,
胡克斯:没错
})
组:对照组;
}
有人能做到这一点吗?我认为你应该把cascade放在
Group
模型上,而不是GroupAttendee
,像这样:
@HasMany(() => GroupAttendee , {
onUpdate: "CASCADE",
onDelete: "CASCADE",
hooks: true
})
attendees: GroupAttendee[];