例如,我有一个TypeORM实体Profile
:
@Entity()
class Profile {
@PrimaryGeneratedColumn()
id: number;
@Column()
gender: string;
@Column()
photo: string;
@OneToOne(type => User, { cascade: true })
@JoinColumn()
user: User;
}
我不确定应该使用哪一个删除用户个人资料?
Profile.remove(profile)
Profile.delete(profile)
TypeORM中的remove
和delete
方法之间有什么区别?
答案 0 :(得分:4)
来自Repo:
remove
-删除给定的实体或实体数组。它将在一次交易中删除所有给定的实体(对于实体而言,经理不是交易性的)。示例:
await repository.remove(user);
await repository.remove([
category1,
category2,
category3
]);
delete
-按实体ID,ID或给定条件删除实体:示例:
await repository.delete(1);
await repository.delete([1, 2, 3]);
await repository.delete({ firstName: "Timber" });
如示例here中所述:
import {getConnection} from "typeorm";
await getConnection()
.createQueryBuilder()
.delete()
.from(User)
.where("id = :id", { id: 1 })
.execute();
这意味着如果
remove
包含实体数组,则应该使用。如果知道情况,则应使用
delete
。