小编Dal*_*ndu的帖子

Mikro ORM:更新插入集合的最佳方式是什么

在以下场景中,整个SalesOrder实体被传递到销售订单实体的服务器项目集合中,可以包含新项目、删除项目和更新项目。只是坚持SalesOrder不起作用(不会删除或更新),这就是我让它工作的方式。有没有更好的办法?或者我错过了什么?

async save(@Body() item: SalesOrder) {

let result: SalesOrder;
result = await em.getRepository<SalesOrder>(SalesOrder).findOne(item.id);
item.items.forEach(k => k.salesOrder = item.id)
await this.em.getRepository(SalesOrderItem).nativeDelete({ salesOrder: item.id })
for (const [i, it] of item.items.entries()) {
    const x = em.getRepository(SalesOrderItem).create({ ...it })
    await em.persistAndFlush(x)
}
wrap(result).assign({ ...item, items: null }, {})

await em.getRepository(SalesOrder).persistAndFlush(result);
await em.flush()
}
Run Code Online (Sandbox Code Playgroud)
@Entity()
export class SalesOrder extends BaseEntity {
    @PrimaryKey( )
    id: number;

    @OneToMany(i => SalesOrderItem, t => t.salesOrder, { eager: true, cascade: [Cascade.ALL] })
    items = new …
Run Code Online (Sandbox Code Playgroud)

mikro-orm

5
推荐指数
0
解决办法
1427
查看次数

标签 统计

mikro-orm ×1