我正在使用nestjs,typeorm和nestjsx/crud创建API端点。
我的用户实体定义如下:
@Entity({
name: 'users'
})
export class User extends CommonEntity {
@Column({ length: 104, unique: true })
email: string;
.
.
.
@OneToOne(type => Role, role => role.user, { cascade: true, lazy: true })
@JoinColumn()
role: Role; //this creates a roleId column in user table
}
和角色实体:
@Entity({
name: 'roles'
})
export class Role extends CommonEntity {
@OneToOne(type => User, user => user.role)
user: User;
@Column({ length: 52 })
name: string;
@Column({ type: 'text' })
policy: string;
}
如何使用单个请求通过RESTful API创建新用户(具有角色)?
我尝试发布以下内容而没有成功:
{
"email": "string03xyz@gmail.com",
"role": {
"id": "1f07f012-9391-4b5f-b6d3-574c58f4e046"
}
}
{
"email": "string03xyz@gmail.com",
"roleId": "1f07f012-9391-4b5f-b6d3-574c58f4e046"
}
答案 0 :(得分:1)
总是要声明您具有重复项,因为它是一个OneToOne关系,您需要使用ManyToMany关系,其中ManyToMany关系是唯一的,使用带有用户ID和角色ID的复合ID