给出以下两个具有 @ManyToMany 关系的 TypeORM 实体:
@Entity({ name: 'products' })
export class ProductEntity {
@PrimaryColumn()
id: number;
@Column()
name: string;
@ManyToMany(type => CategoryEntity, { eager: true })
@JoinTable({ name: 'products_categories' })
categories: CategoryEntity[];
}
@Entity({ name: 'categories' })
export class CategoryEntity {
@PrimaryColumn({ length: 40 })
code: string;
}
结果,我创建了一个名为"products_categories"
的表,该表具有以下列名:
productsId
categoriesCode
是否可以给这两列自定义名称?我想将它们重命名如下:
productsId
-> productId
categoriesCode
-> categoryCode
答案 0 :(得分:0)
通过扩展给@JoinTable
的options对象来解决它,我从TypeORM docs中错过了它:
@ManyToMany(type => CategoryEntity, { eager: true })
@JoinTable({
name: "products_categories",
joinColumn: {
name: "product",
referencedColumnName: "id"
},
inverseJoinColumn: {
name: "category",
referencedColumnName: "id"
}
})
categories: CategoryEntity[];