我有一个供应表,其中带有名称和数量列。我希望以下代码更新数量,但不会更新数量。有人可以更正我的代码吗?
const repository = connection.getRepository('supply');
await repository.update({ quantity: 20 }, { name: 'supply1' });
答案 0 :(得分:0)
我会尝试像这样编写查询:
connection.createQueryBuilder()
.update(Supply)
.set({ quantity: 20 })
.where('name = :name', { name: 'supply1' })
.execute();
在此查询中,Supply应该是实体,而不是字符串。这基于documentation for Update Using Query Builder。
更新:
要使用已编辑查询中所使用的repository.update语法,应对参数重新排序。
const repository = connection.getRepository(SupplyEntity);
await repository.update({ name: 'supply1' }, { quantity: 20 });
// executes UPDATE supply SET quantity = 20 WHERE name = "supply1"
来源:Documentation for the repository.api
此外,您可以尝试console.log(repository)
以确保它存在。否则,您可以尝试像上面的代码示例中那样传递实体。
答案 1 :(得分:0)
反转定序器
await repository.update({ quantity: 20 }, { name: 'supply1' }); // tries to update where quantity is 20...
await repository.update( { name: 'supply1' }, { quantity: 20 }); // updates quantity