postgresql - TypeORM - 作为字符串而不是十进制/数字返回的十进制列值
问题描述
我不知道为什么,但是列值总是作为字符串而不是小数返回,我不知道如何解决这个问题。
它们正确存储在数据库中,但是当我使用 QueryBuilder 查询时,结果显示为字符串。
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity({name:"collectionstats"})
export class CollectionStats {
@PrimaryGeneratedColumn()
id: number;
@Column("decimal")
one_day_volume: number;
@Column("decimal")
one_day_change: number;
@Column("decimal")
one_day_sales: number;
@Column("decimal")
one_day_average_price: number;
@Column("decimal")
seven_day_volume: number;
@Column("decimal")
seven_day_change: number;
@Column("decimal")
seven_day_sales: number;
@Column("decimal")
seven_day_average_price: number;
@Column("decimal")
thirty_day_volume: number;
@Column("decimal")
thirty_day_change: number;
@Column("decimal")
thirty_day_sales: number;
@Column("decimal")
thirty_day_average_price: number;
@Column("decimal")
total_volume: number;
@Column("decimal")
total_sales: number;
@Column("decimal")
total_supply: number;
@Column("decimal")
count: number;
@Column("decimal")
num_owners: number;
@Column("decimal")
average_price: number;
@Column("decimal")
num_reports: number;
@Column("decimal")
market_cap: number;
@Column("decimal")
floor_price: number;
}
解决方案
共享我们使用的变压器:
/// ColumnNumericTransformer export class ColumnNumericTransformer { to(data: number): number { return data; } from(data: string): number { return parseFloat(data); } }
在实体中:
@Column('numeric', { precision: 7, scale: 2, transformer: new ColumnNumericTransformer(), }) public myNumericColumn: number;
推荐阅读
- d3.js - d3 zoom - 如何设置初始变换
- maven - 如何配置 maven 以应对公司/VPN 和公共存储库设置?
- applescript - 是否有 AppleScript 可以在 Skype 中选择用户
- php - PHP Gallery 最佳实践作为显示图像的性能
- mysql - Mysql 正则表达式失败
- google-chrome-extension - 阻止 chrome 扩展中的 HTTP 请求并返回“200 OK”状态码
- firebase - 我怎样才能为集合中的每个文档?Firebase(超过限制)
- android - 如何通过活动 Android 应用程序的菜单处理关闭 python kivy 应用程序
- python - 检查目录名称是否为年份 python
- c - 在C中递归打印循环单链表