【发布时间】:2021-06-09 07:34:36
【问题描述】:
我尝试了 .save 和 .update 但它会导致错误,--在 .save 的情况下它会返回错误: 重复键的值打破了唯一约束 --在 .update 的情况下它返回错误:“用户”关系的“userId”列不存在
注意:我有 2 个表角色和用户以及关联 user_role
//Many-to-many relation with user
@ManyToMany((type) => User, (user) => user.roles)
users: User[];
//Many-to-many relation with role
@ManyToMany((type) => Role, {
cascade: true,
})
@JoinTable({
name: "users_roles",
joinColumn: { name: "userId", referencedColumnName: "id" },
inverseJoinColumn: { name: "roleId" }
})
roles: Role[];
源代码是: /* 数据示例 实体2 = { 用户名:'user8', 密码:'user8', 名字:'测试', 姓氏:'tt', 电子邮件:'user8@gmail.com', 公司:18, 角色:[{id:62},{id:63}] } */
let entity = await this.userRepository.create(data.payload);
let entity2 = { ...entity, roles: data.payload.selectedRoles }
const user = await this.userRepository.save(entity2);
/*const user = await this.userRepository.update(id, entity2);*/
//todo we need to serialize the user
// return only what we need like username , email, ...etc not password!!!!
return { success: true, user: SanitizeUser(user) };
【问题讨论】:
标签: javascript express many-to-many typeorm relation