gpt4 book ai didi

cascade - TypeORM 级联选项 : cascade, onDelete, onUpdate

转载 作者:行者123 更新时间:2023-12-04 16:57:34 36 4
gpt4 key购买 nike

TypeORM 中的级联选项是重叠的还是有完全不同的目的?他们在文档中的描述非常稀少,部分缺失,或者我找不到。

IOW,请执行以下选项
{ cascade: "update" } = { onUpdate: 'CASCADE' }{ cascade: "remove" } = { onDelete: 'CASCADE' }
有同样的效果吗?

或者 cascade选项仅用于 TypeORM,而 onUpdateonDelete仅用于数据库架构(由迁移创建)?

最佳答案

这是我研究它的结论:cascade选项 影响数据库列约束,我相信 TypeORM 仅在评估如何将实体关系保存到数据库时使用它。我们可以这样定义实体:

@Entity()
class Book extends BaseEntity {
@ManyToOne(() => Author, (author) => author.books, {
onDelete: 'CASCADE',
})
public author?: Author
}

@Entity()
class Author extends BaseEntity {
@OneToMany(() => Book, (book) => book.author, {
cascade: true,
})
public books: Book[];
}
onDelete设置 authorId CASCADE onDelete onDelete 的外键 Book .这意味着当作者被删除时,这本书也被删除了。
设置 cascade: trueAuthor告诉 TypeORM 如果在作者身上附加了一本新书并保存了作者,那么新书也应该保存到数据库中。像这样:
const author = await Author.findOne({ id: '123' });
author.books.push(new Book(...));
await author.save();
如果在 Book 上未设置级联,新书不会保存到数据库中。

关于cascade - TypeORM 级联选项 : cascade, onDelete, onUpdate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55098023/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com