[英]FindOne in ManyToMany relation with a custom field TypeOrm + Nestjs
[英]TypeORM relation with a field apart from id
@Entity()
export class Photo {
@PrimaryGeneratedColumn()
id: number;
@Column()
url: string;
@ManyToOne(() => User, user => user.photos)
@JoinColumn({ name: 'userName' }) // < -- add this line
user: User;
}
@Entity()
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column()
name: string;
@OneToMany(() => Photo, photo => photo.user)
photos: Photo[];
}
如果您希望您的关系指向id
以外的列,则必须将referencedColumnName: '<column name here>'
添加到您的@JoinColumn()
选项。
例如:
@Entity()
export class Photo {
@PrimaryGeneratedColumn()
id: number;
@Column()
url: string;
@ManyToOne(() => User, user => user.photos)
@JoinColumn({ name: 'userName', referencedColumnName: 'name' })
user: User;
}
此外,请注意从 typeORM 的角度指定 referencedColumnName,而不是真正的底层驱动程序列名称。 例如,如果你想引用一个名为user_name
的列,但你的实体的属性使用 camelCase userName
,你必须指定:
referencedColumnName: 'userName'
如果您改为指定数据库列名,您将收到错误消息,抱怨 typeORM 无法在您的实体定义中找到引用的列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.