删除和删除有什么区别?

时间:2019-01-18 01:31:17

标签: typescript typeorm

例如,我有一个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中的removedelete方法之间有什么区别?

1 个答案:

答案 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