TypeORM:多对多自定义列名

cha*_*nie 7 typescript typeorm

给定以下两个具有@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[];
}
Run Code Online (Sandbox Code Playgroud)
@Entity({ name: 'categories' })
export class CategoryEntity {
  @PrimaryColumn({ length: 40 })
  code: string;
}
Run Code Online (Sandbox Code Playgroud)

结果,我创建了一个名为"products_categories"以下列名称的表:

  • productsId
  • categoriesCode

有没有办法给这两列自定义名称?我想将它们重命名如下:

  • productsId -> productId
  • categoriesCode -> categoryCode

cha*_*nie 19

通过扩展给定的选项对象来解决它@JoinTable,我在TypeORM 文档中遗漏了

@ManyToMany(type => CategoryEntity, { eager: true })
@JoinTable({
    name: "products_categories",
    joinColumn: {
        name: "product",
        referencedColumnName: "id"
    },
    inverseJoinColumn: {
        name: "category",
        referencedColumnName: "id"
    }
})
categories: CategoryEntity[];
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢你!你让我今天一整天都感觉很好 ! (2认同)