Hal*_*ğan 7 javascript orm typeorm
我使用 Typeorm,我只想使用relationId. 但它并没有像我预期的那样工作。
这是我的实体,
@Entity()
export default class Address extends BaseEntity {
@Column({
type: 'varchar',
length: 255,
})
public title: number;
@Column({
type: 'varchar',
length: 2000,
})
public value: number;
@ManyToOne(type => User, user => user)
@JoinColumn({ name: 'userId' })
public user: User;
@RelationId((address: Address) => address.user)
public userId: number;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试像下面的示例那样添加时,它添加了我不期望的 null userId
{
"title": "My home address",
"value": "Lorep Ipsum Sit Amet",
"userId": 4
}
Run Code Online (Sandbox Code Playgroud)
当我更改有效负载时,一切正常。
{
"title": "Ev adresim",
"value": "Nova Suites",
"user": 4
}
Run Code Online (Sandbox Code Playgroud)
我不想使用像上面这样的有效载荷。我沉迷于定义一个描述性的变量命名。感谢从现在开始的所有贡献和所有答案。
Jud*_*dge 13
看起来这是 @RelationId 装饰器的 TypeORM 问题: https: //github.com/typeorm/typeorm/issues/3867。
您可以使用 @Column 来装饰 userId,而不是使用 @RelationId,当 JoinColumn 的名称等于数字列名称时,TypeORM 会匹配两者,您可以设置 userId 或用户,TypeORM 将处理它:
@ManyToOne(type => User, user => user)
@JoinColumn({ name: 'userId' })
public user: User;
@Column()
public userId: number;
Run Code Online (Sandbox Code Playgroud)