首页 > 解决方案 > 无法在 TypeORM 中以一对一关系更新数据

问题描述

我正在尝试更新我的productDetails表格和productMaster表格。

这是我的关系:

ProductMaster.ts:

@OneToOne(type => ProductDetails, productDetails => productDetails.productMaster,{
    cascade: ["insert", "update"]
})
productDetails: ProductDetails;

ProductDetails.ts:

@OneToOne(type => ProductMaster,  productMaster => productMaster.productDetails,{
    cascade: ["insert", "update"]
})
@JoinColumn({name: 'prd_id', referencedColumnName: 'prd_id'})
productMaster: ProductMaster;

现在我必须更新我的productMasterproductDetails使用 TypeORM 关系。

这是我尝试过的:

productMasterRepository
        .createQueryBuilder()
        .update()
        .set({
           prd_name : 'my Product Name'
           productDetails : {
               prd_brand : 'My Product Brand Name'
           }
          })
        .where("prd_id = :prd_id", {prd_id: 1})
        .execute();

但它不更新。

标签: node.jstypeorm

解决方案


好的,所以这里的问题是您想要连接表并同时更新它们,它将使用连接,但是不可能创建像这样的复杂查询。

Typeorm 仅支持joins选择表达式

参考这个参考这个

只能使用raw queries


推荐阅读