typescript - TypeORM: Nombres de columna personalizados en una relación muchos-a-muchos
Dadas las siguientes dos entidades TypeORM que tienen una relación @ManyToMany:
@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;
}
Como resultado, se creó una tabla llamada "products_categories" con los siguientes nombres de columnas:
idProductoscategoriesCode
¿Hay alguna manera de darle a estas dos columnas nombres personalizados? Me gustaría renombrarlas de la siguiente manera:
productsId->productIdcategoriesCode->categoryCode
Respuesta #1
Lo resolví ampliando el objeto de opciones dado a @JoinTable, que me había pasado por alto en la documentación de TypeORM:
@ManyToMany(type => CategoryEntity, { eager: true })
@JoinTable({
name: "products_categories",
joinColumn: {
name: "product",
referencedColumnName: "id"
},
inverseJoinColumn: {
name: "category",
referencedColumnName: "id"
}
})
categories: CategoryEntity[];
