我正在使用 NestJS 10、PostGres 14 和 TypeORM 0.3.17。如果我定义了一个与用户实体有关系的订单实体...
@Entity()
export class Order {
@PrimaryGeneratedColumn('uuid')
id: string;
@OneToOne((type) => User)
@JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
user: User;
如何调整此关系,以便在删除用户时 user_id 列设置为 NULL?目前,当我从这种关系生成迁移时,它会这样生成
Foreign-key constraints:
"FK_199e32a02ddc0f47cd93181d8fd" FOREIGN KEY (user_id) REFERENCES "user"(id)
因此,当我尝试删除具有关联订单的用户时,底层数据库将不允许我删除该用户。
您可以添加外键约束
@Entity()
export class Order {
@PrimaryGeneratedColumn('uuid')
id: string;
@OneToOne((type) => User, { onDelete: 'SET NULL' })
@JoinColumn({ name: 'user_id', referencedColumnName: 'id' })
user: User;