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);
谢谢,这救了我