【发布时间】:2021-08-13 00:31:16
【问题描述】:
如何让 TypeORM 只更新我在保存对象时修改过的字段?这是一个例子:
const user1 = await createTestUser()
const user2 = await User.findOneOrFail({id: user1.id})
user1.email = 'user1@email.com'
await user1.save()
user2.name = 'chris'
await user2.save()
// What is the user's email address?
createTestUser() 使用“test-0wt3d8ypk0hcpng_7adq4v@testing.blahblahblah.com”之类的电子邮件地址创建用户。 user1 更改电子邮件地址,user2 更改名称。我希望此代码将数据库中用户的电子邮件地址更改为 user1@email.com,并将数据库中的用户名更改为“chris”。实际发生的是,当调用 user2.save() 时,它会将用户的电子邮件地址更改回“test-0wt3d8ypk0hcpng_7adq4v@testing.blahblahblah.com”,因为这是我从数据库中检索用户行时的电子邮件地址.我希望 user2.save() 只更改名称字段。
我知道我可以使用查询生成器只更新我关心的字段,但是必须通过代码并更改我们修改对象的所有位置以避免并发保存的情况真的很烦人咬我们。有没有更好的解决方案可以让 TypeORM 只更新我更改的字段(第一个示例中的 user.email 和第二个示例中的 user.name)?
【问题讨论】:
标签: typeorm