如何在一个查询中批量插入多个记录,以便我数据库高效我想要创建office并将多个新设备插入到Office中。表/模型代码:
办公室
@Entity({ name: 'offices' })
export class Office extends Timestamps {
@OneToMany(() => Equipment, (equipment: Equipment) => equipment.office, {
onDelete: 'CASCADE',
onUpdate: 'CASCADE'
})
equipment: Array<Equipment>;
}设备
@Entity({ name: 'equipment' })
export class Equipment extends Timestamps {
@Column({
name: 'equipment_id',
type: 'int',
nullable: false,
width: 2,
default: 0
})
equipment_id: number;
@ManyToOne(() => Office, (office: Office) => office.equipment)
@JoinColumn({ name: 'office_id' })
office: Office;
}发布于 2020-10-28 21:03:04
我建议你在关系中使用cascades属性:
@Entity({ name: 'offices' })
export class Office extends Timestamps {
@OneToMany(() => Equipment, (equipment: Equipment) => equipment.office, {
cascade: true, // <= here
onDelete: 'CASCADE',
onUpdate: 'CASCADE'
})
equipment: Array<Equipment>;
}现在,如果在创建Office实例时设置设备,它会自动将设备实例插入到数据库中:
await Office.create({equipment: ['whatever']}).save();或者,如果您对基于此link的存储库使用数据映射器方法
const officeRepository = connection.getRepository(Office);
const office = new Office();
const equipment1 = new Equipment(); // and set your properties or make more instances
office.equipment = [equipment1]; // or more instances
await officeRepository.save(office);https://stackoverflow.com/questions/64557556
复制相似问题