Nestjs,如何获取实体表名?

Nestjs,如何获取实体表名?,nestjs,typeorm,Nestjs,Typeorm,如何获取实体表名?(例如:会员预售详情) 我想设置表注释 // Seeder: Clear & set Comment export default class ClearAllSeed implements Seeder { public async run(factory: Factory, connection: Connection): Promise<void> { const deleteEntities = [

如何获取实体表名?(例如:会员预售详情) 我想设置表注释

// Seeder: Clear & set Comment
export default class ClearAllSeed implements Seeder {
    public async run(factory: Factory, connection: Connection): Promise<void> {


        const deleteEntities = [
            {table: OrderHead, comment: '訂單/主表'},
       ]

       for(const entity of deleteEntities){
            await connection
                .createQueryBuilder()
                .delete()
                .from(entity.table)
                .execute();

            await connection
                // >>>> but table name is MemberPreSaleDetail not member-pre-sale-detail
                .query(`alter table ${entity.table.name} comment '${entity.comment}'`);
        }
   }
}

// Sampel Entity
@Entity('member-pre-sale-detail')
export class MemberPreSaleDetail {
  @PrimaryGeneratedColumn({unsigned: true})
  id?: number;

  @Column({comment: '幾批(整批)', type: 'mediumint', default: 0})
  batchQty: number;
}
//播种机:清除和设置注释
导出默认类ClearAllSeed实现播种器{
公共异步运行(工厂:工厂,连接:连接):承诺{
常量删除实体=[
{表:OrderHead,注释:'訂單/主表'},
]
for(删除实体的常量实体){
等待连接
.createQueryBuilder()
1.删除()
.from(实体表)
.execute();
等待连接
//>>>>但是表名是MemberPreSaleDetail,而不是MemberPreSaleDetail
.query(`alter table${entity.table.name}注释'${entity.comment}'`);
}
}
}
//Sampel实体
@实体(“成员预售详情”)
导出类MemberPreSaleDetail{
@PrimaryGeneratedColumn({unsigned:true})
id?:编号;
@列({注释:'幾批(整批)', 类型:“mediumint”,默认值:0})
批次数量:数量;
}
预期行为 获取“会员预售详情”字符串

环境 嵌套版本:7.0.7 对于工具问题: -节点版本:v14.5.0
-平台:Mac我猜您正在使用TypeORM。在这种情况下:

您可以通过调用
connection.getMetadata(MemberPreSaleDetail)
来获取实体元数据


这个方法返回一个属性,它有
name
tableName
givenTableName
属性。对于你的用例,我想你可以简单地使用
givenTableName

嗯,我不确定这个
@Entity
装饰器是如何工作的,但我想你可以试试这样的东西:
Entity.constructor.name