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()
}
@Entity()
export class SalesOrder extends BaseEntity {
    @PrimaryKey( )
    id: number;

    @OnetoMany(i => SalesOrderItem,t => t.salesOrder,{ eager: true,cascade: [Cascade.ALL] })
    items = new Collection<SalesOrderItem>(this); 
}

@Entity()
export class SalesOrderItem extends BaseEntity {

    @ManyToOne({ entity: () => InventoryItem,eager: true,primary: true })
    item: IdentifiedReference<InventoryItem>;

    @Property({ type: JsonType,columnType: 'jsonb',nullable: true })
    configuration?: SalesOrderItem[]

    @ManyToOne({ entity: () => SalesOrder,hidden: true,primary: true })
    salesOrder: IdentifiedReference<SalesOrder>;

    @Property({ nullable: false })
    qty: number;

    @Property({ nullable: false })
    unitPrice: number;

    [PrimaryKeyType]: [string,string]
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)