【发布时间】:2020-12-24 00:30:32
【问题描述】:
我不知道是不是我,cascade: true 选项在删除父实体时不会删除子实体?
@Entity()
export class Folder {
@PrimaryGeneratedColumn()
public readonly id: number;
@OneToMany(() => Segment, (segment) => segment.folder, {
cascade: true,
})
public segments: Segment[];
}
@Entity()
export class Segment {
@PrimaryGeneratedColumn()
public readonly id: number;
@ManyToOne(() => Folder, (folder) => folder.segments)
@JoinColumn()
public folder: Folder;
}
然后我做
await getRepository(Folder).delete(id);
这给了我一个错误:
update or delete on table "folder" violates foreign key constraint "FK_12606f83d18e5ae0c7e5693f3fb" on table
"segment"
也试过了
const folder = await this.repository.findOneOrFail(id);
repository.remove(folder)
//or
folder.segments = null;
await this.repository.save(folder);
还是错误...
我不想遍历所有子实体并手动删除它们。我认为cascade: true 应该处理它以及保存或更新。
也许语法应该不同?
谢谢!
【问题讨论】:
标签: typescript typeorm