我有两个实体(表):用户和角色。两个实体之间存在多对一关系(一个用户可以有一个角色,角色可以与多个用户相关)。现在,我想通过执行以下命令来更新用户实体(还可以包括用户角色的更新):
const user = await this.userRepository.preload(partialUser);
await this.userRepository.save(user);
return user;
Run Code Online (Sandbox Code Playgroud)
partialUser (要更新的用户属性)与数据库中的用户数据合并,包括 roleuser (合并的对象)保存到数据库role加载(但如果我将子属性添加role到partialUser,则可以)user(合并的对象)保存到数据库(role如果是的一部分,也保存到数据库partialUser)为什么role不通过via preload或returnafter 加载save?TypeORM存储库是不是为建立关系而设计的不好,还是我使用不正确?
目前,我必须user在保存完实体后再次读取整个实体,以便可以将完整的对象(包括role关系)返回给调用者。我认为那不是很有效。打算那样吗?
const user = await this.userRepository.preload(partialUser);
await this.userRepository.save(user);
return this.userRepository.findOne({
where: { id: user.id },
relations: ['role']
});
Run Code Online (Sandbox Code Playgroud)