代码之家  ›  专栏  ›  技术社区  ›  Chris Hunter-Johnson

如何使用TypeORM关系QueryBuilder删除关系检测失败的数据库更改

  •  0
  • Chris Hunter-Johnson  · 技术社区  · 3 年前

    使用的技术堆栈是带有NestJs的-TypeORM。 我正在进行以下查询,以删除作为ManyToMany关系一部分的关系。快乐的路径运行良好——当更新失败时检测到我有问题。 理想情况下,我希望在没有额外DB调用的情况下实现这一点(效率很低) 返回值未定义,try/catch块中没有抛出异常。

    配置文件实体

    @ManyToMany((_type) => Relationship, (relationship) =>       
     relationship.users)
    @JoinTable({
     name: 'user_relationship_map',
     joinColumn: { name: 'userId', referencedColumnName: 'id' },
     inverseJoinColumn: { name: 'relationshipId' },
    })
    relationships: Relationship[];
    

    关系实体

    @ManyToMany(() => User, (user) => user.relationships)
    users: User[];
    

    删除关系(基于TypeORM文档)

    const query = this.createQueryBuilder('user');
    try {
      const result = await query
        .relation(relationshipType) 
        .of(userId)
        .remove(relationshipId);
    
      this.logger.log(`after remove query:  ${result}`);
    } catch (err) {
      this.logger.warn(err.message);
      return { status: MessageStatus.ERROR, message: err.message };
    }
    

    记录器显示“删除查询后:未定义”

    我如何检测到更新没有发生,以便将其报告回UI?

    非常感谢

    0 回复  |  直到 3 年前