Mysql 如何删除Nest.js中@ManyToMany关系中的数据

Mysql 如何删除Nest.js中@ManyToMany关系中的数据,mysql,nestjs,typeorm,Mysql,Nestjs,Typeorm,我在两个实体之间有一个manytomy关系 @Entity() export class Device{ @PrimaryColumn() Name:string; @Column({ nullable: true}) Port:number; @Column({ nullable: true}) IPadress:string; @Column({ nullable: true}) Location:string; @ManyToMany(typ

我在两个实体之间有一个
manytomy
关系

@Entity()
export class Device{

  @PrimaryColumn()
  Name:string;


  @Column({ nullable: true})
  Port:number;

  @Column({ nullable: true})
  IPadress:string;

  @Column({ nullable: true})
  Location:string;

  @ManyToMany(type => User)
    @JoinTable()
    users: User[];

  }

@Entity()
export class User{

  @PrimaryColumn()
  Id:number;
  @Column({ nullable: true})
  Departement:string;
  @Column({ nullable: true})
  FirstName:string;
  @Column({ nullable: true})
  LastName:string;
  @Column({ nullable: true})
  CardNumber:string;
  @Column({ nullable: true})
  MobilePhone:string;

}

我想知道如何删除有用户的设备,以及如何仅从设备中删除用户

我认为使您的实体关系双向化应该可行:

@Entity()
export class Device{

  @PrimaryColumn()
  Name:string;    

  @Column({ nullable: true})
  Port:number;

  @Column({ nullable: true})
  IPadress:string;

  @Column({ nullable: true})
  Location:string;

  @ManyToMany(type => User, users => users.devices { cascade: true })
    @JoinTable()
    users: User[];

  }

@Entity()
export class User{

  @PrimaryColumn()
  Id:number;
  @Column({ nullable: true})
  Departement:string;
  @Column({ nullable: true})
  FirstName:string;
  @Column({ nullable: true})
  LastName:string;
  @Column({ nullable: true})
  CardNumber:string;
  @Column({ nullable: true})
  MobilePhone:string;
  @ManyToMany(type => Device, device => device.users)        
    devices: Device[];
}
我想您已经设置了数据源,因此可以通过以下方式仅删除用户:

db.getRepository(User).delete(userId);
当您删除一台设备时,它将删除其所有关联用户:

db.getRepository(Device).delete(deviceId);

谢谢,这救了我