Nestjs 使用TypeORM更新嵌套关系的正确方法是什么?

Nestjs 使用TypeORM更新嵌套关系的正确方法是什么?,nestjs,typeorm,Nestjs,Typeorm,我试图搜索我的问题,但什么也找不到,也许我处理问题的方法不对 我正在一个服务中构建一个update one函数,它位于REST API(使用NestJS)的补丁端点中,因为这是一个补丁,所以我要寻找的是作为参数输入的任何字段,应该在实体中得到更新,到目前为止效果很好。 现在问题出现了,我将其添加到一个相关模型中 我拥有的(简化)模型有: 我与之合作的主要实体: 组织{ 身份证号码:, 名称:字符串; @一家公司(()=>Offer,(Offer:Offer)=>Offer.organizatio

我试图搜索我的问题,但什么也找不到,也许我处理问题的方法不对

我正在一个服务中构建一个update one函数,它位于REST API(使用NestJS)的补丁端点中,因为这是一个补丁,所以我要寻找的是作为参数输入的任何字段,应该在实体中得到更新,到目前为止效果很好。 现在问题出现了,我将其添加到一个相关模型中

我拥有的(简化)模型有:

我与之合作的主要实体:

组织{
身份证号码:,
名称:字符串;
@一家公司(()=>Offer,(Offer:Offer)=>Offer.organization,
{
答:是的,
渴望:是的
})
报价:报价[]
}
Offer模型基本上是一个多对多的中间表,但是我用这种方式建模,因为我希望很快添加一些额外的字段

报价{
身份证号码:,
@多通(()=>Organization,(Organization:Organization)=>Organization.id{
onDelete:'级联',
可为空:false
})
@连接柱({
名称:'organization_id',
referencedColumnName:'id'
})
组织:组织;
@多通(()=>Category,(Category:Category)=>Category.id{
是的,
onDelete:'级联',
可为空:false
})
@连接柱({
名称:'category_id',
referencedColumnName:'id'
})
@自动映射()
类别:类别;
}
该类别只是有一些信息(甚至没有OneToMany关系设置,因为我不担心看到一个类别的所有优惠)

类别{
身份证号码:,
名称:string
}
为了编辑组织,我使用
repository.preload()
对新的传入更新参数进行预加载,加载实体并根据新字段修改值

但是在嵌套的产品上,它加载了以前存在的产品和新添加(或修改)的产品,即使我传递了产品的ID:

因此,如果我的请求主体是:

{
    "offers" : [
    {
        "id": 7,  // This one exists
        "category_id": 2 // And should modify this category
    },
    {
        "category_id": 3 // this is a new one I'd like to create
    }
    ]
}
我是否过度扩展了
preload()
实际可以做的事情,我应该在没有关系的情况下加载实体并单独管理它们?或者这是可以通过这种方式实现的吗?您通常如何编辑修补程序端点中的嵌套关系