首页 > 解决方案 > 使用 createQueryBuilder 将十进制字段转换为字符串

问题描述

这是我的桌子:

@Entity('products')
export class Products {

    @PrimaryGeneratedColumn()
    @IsNumber()
    public id: number;

    @Column('decimal', { 
      precision: 20,
      scale: 2,
      transformer : { 
        to (value)  {
          return value ; 
        }, 
        from (value)  { 
          return parseFloat (value) ; 
        }, 
      }, 
    })
    @IsNotEmpty()
    price: number;
}

在我的 ormconfig 文件中,我有:

...
bigNumberStrings: false,
supportBigNumbers: true,

如果我做:

return await this.repository.find();

一切正常。价格字段将其返回为小数。

但是,如果我使用 createQueryBuilder ,它会将其作为字符串返回:

 return await this.repository.createQueryBuilder("products")
    .select([
      'products.id AS id',
      'products.price AS price'])  
    .getRawMany();

拜托,有人可以告诉我如何解决它吗?

标签: typeorm

解决方案


推荐阅读