【问题标题】:How to delete data in @ManyToMany relation in Nest.js如何在 Nest.js 中删除 @ManyToMany 关系中的数据
【发布时间】:2020-06-29 23:55:03
【问题描述】:

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

@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;

}

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

【问题讨论】:

    标签: mysql nestjs typeorm


    【解决方案1】:

    我认为使您的实体关系双向应该有效:

    @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);
    

    【讨论】:

    • 谢谢,这救了我
    猜你喜欢
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 2011-07-26
    相关资源
    最近更新 更多