如何在运行时动态创建 typeorm 实体类

ner*_*ger 6 javascript decorator typeorm javascript-decorators

我试图在运行时动态创建 Typeorm 实体,然后在创建连接时将它们显式添加到连接中。我在弄清楚如何使用属性装饰器时遇到了一些麻烦。

作为控件,以声明方式创建实体效果很好:

@Entity('table_name')
export class NewEntity extends BaseEntity {

  @PrimaryGeneratedColumn()
  public id: number;

}
Run Code Online (Sandbox Code Playgroud)

然后类装饰器可以像常规函数一样正常工作:

class NewEntity {

    @PrimaryGeneratedColumn()
    public id: number;

}

Entity('table_name')(NewEntity);
Run Code Online (Sandbox Code Playgroud)

PrimaryGeneratedColumn()作为常规函数使用:

class NewEntity {
    public id: number;
}

PrimaryGeneratedColumn()(NewEntity, 'id');
Entity('table_name')(NewEntity);
Run Code Online (Sandbox Code Playgroud)

给出:Entity "NewEntity" does not have a primary column. Primary column is required to have in all your entities. Use @PrimaryColumn decorator to add a primary column to your entity.创建 typeorm 连接时。

我知道这是一个奇怪的用例!但如果有人知道如何做到这一点,将不胜感激!:)