如何使用typeorm在nest js中存储big int



some.entity.ts

amount:number

但是当我在我的帖子中存储非常大的数据时,它会抛出错误"整数超出范围">

我的问题是如何使用typeorm将Big Int存储为psql中的类型

在装饰器中定义类型bigint@Column,

@Column({type: 'bigint'})
columnName: string;

注意:基于TypeOrm文档bigint映射到string

伊斯兰教@Riajul伟大的共鸣!

作为他的回答的补充,如果你想在PrimaryGeneratedColumn中存储bigint,你应该做到以下几点:

@PrimaryGeneratedColumn( 'increment', {type: 'bigint'} )
id: number;

只需将{ bigNumberStrings: false }添加到TypeORM的配置中,例如:

TypeOrmModule.forRoot({
bigNumberStrings: false,
...config.database,
}),

然后 bigint 将返回数字类型。

我使用了列转换器:

export class ColumnNumberTransformer {
public to(data: number): number {
return data;
}
public from(data: string): number {
// output value, you can use Number, parseFloat variations
// also you can add nullable condition:
// if (!Boolean(data)) return 0;
return parseInt(data);
}
}

然后在实体中:

@Entity('accounts')
export class AccountEntity extends BaseEntity {
@Column({
type: 'bigint',
nullable: false,
transformer: new ColumnNumberTransformer()
})
public balance: number;
}

最新更新