Yeg*_*mba 6 typescript typeorm
例如,我有一个TypeORM实体Profile:
@Entity()
class Profile {
@PrimaryGeneratedColumn()
id: number;
@Column()
gender: string;
@Column()
photo: string;
@OneToOne(type => User, { cascade: true })
@JoinColumn()
user: User;
}
Run Code Online (Sandbox Code Playgroud)
我不确定应该使用哪一个删除用户个人资料?
Profile.remove(profile)
Profile.delete(profile)
Run Code Online (Sandbox Code Playgroud)
TypeORM中remove和delete方法之间有什么区别?
Muk*_*yuu 15
从回购:
remove-删除给定的实体或实体数组。它会在一次交易中删除所有给定的实体(对于实体而言,经理不是交易性的)。例:
await repository.remove(user);
await repository.remove([
category1,
category2,
category3
]);
Run Code Online (Sandbox Code Playgroud)
delete -按实体ID,ID或给定条件删除实体:例:
await repository.delete(1);
await repository.delete([1, 2, 3]);
await repository.delete({ firstName: "Timber" });
Run Code Online (Sandbox Code Playgroud)
作为例子说明这里:
import {getConnection} from "typeorm";
await getConnection()
.createQueryBuilder()
.delete()
.from(User)
.where("id = :id", { id: 1 })
.execute();
Run Code Online (Sandbox Code Playgroud)
这意味着
remove如果它包含实体数组,则应使用。
delete如果您知道病情,则应该使用。
此外,正如@ James在诸如和中所述的注释中 所述,仅当使用删除实体时才触发监听器。Entity Listener@BeforeRemove@AfterRemoverepository.remove
同样,@BeforeInsert,@AfterInsert,@BeforeUpdate,@AfterUpdate只有当实体插入/使用更新的触发repository.save。
来源:实体侦听器和订户
| 归档时间: |
|
| 查看次数: |
8148 次 |
| 最近记录: |