cir*_*urn 5 sequelize.js typescript
我在 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;
}
Run Code Online (Sandbox Code Playgroud)
有人让它发挥作用吗?
我认为你应该将级联放在GroupModel 上,而不是GroupAttendee像这样:
@HasMany(() => GroupAttendee , {
onUpdate: "CASCADE",
onDelete: "CASCADE",
hooks: true
})
attendees: GroupAttendee[];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4622 次 |
| 最近记录: |