postgresql - “QueryFailedError:整数的输入语法无效:”查询浮点类型时
问题描述
使用 TypeORM QueryBuilder() 查询数据库时,我得到:
QueryFailedError: invalid input syntax for integer: "X"
X 是存储在数据库中的值。
最初我的实体是类型;
{type: 'decimal', precision: 5, scale: 2 }
value: number
由于我已将其更改为:
{type: 'real'}
value: string
并尝试:
'float'
value: string
所有三种类型都抛出相同的错误。但是,如果数据库中的值没有任何小数位 - 它工作正常。
我正在运行 Postgres v11.4、TypeORM v0.2.18 和 Nest.js v6.5.3
实体定义:
export class Entity extends BaseEntity {
@Column('float')
value: string;
}
查询:
const current = await this.entityRepo
.createQueryBuilder('uL')
.leftJoin('uL.user', 'user')
.leftJoinAndSelect('uL.currentLevel', 'cL')
.where('user.id = :id', { id: userId })
.getOne();
我期望返回的实体的值是正确的小数间距。
解决方案
在更新到TypeORM v0.2.18后,我遇到了同样的错误:PostgreSQL 实际上并不知道“数字”;Microsoft GitHub 上的typeorm存储库中的更多信息
改变了这个:
@Column()
value: number;
...对此:
@Column({type: 'real'})
value: string;
我忘了迁移;你是否?
重要运行迁移,以实际应用这些更改:
npm run typeorm:migrate ChangedNumbersTypeToReal
npm run build; npm run typeorm:run
现在一切都应该很好。
您可以在他们的GitHub 上阅读有关使用 TypeORM 进行迁移的更多信息
推荐阅读
- yarnpkg - Yarn workspace + lerna 在每个子包中创建 node_modules
- python - 如何解决这个“PermissionError:[Errno 13] Permission denied”错误?
- julia - 在 Julia 中,制作一组 Vector,并指定 Set 的类型
- python-3.x - 防止命令行在 Python 中打开
- python - Python 请求不会进行身份验证
- html - 在线发布加工草图的最佳方式?
- python - 我想检查 pygame 中的碰撞。我想要这样当我的球员撞到墙上时他会停下来
- firebase - firebasehosting.googleapis.com/network/active_connections:没有这样的文件或目录
- ssis - SSIS 包以导入逗号分隔的平面文件,其中包含逗号的列
- java - 如何在for循环中增加edittexts的数量