【发布时间】:2022-01-02 05:59:41
【问题描述】:
我想使用 typeorm 在 SQL Server 中插入记录,其中列的类型为 bigint。我有 id 类型的“猫”实体:bigint。
import { Column, Entity } from 'typeorm';
@Entity('Cats')
export class CatsEntity {
@Column({ type: 'bigint', name: 'CatID' })
public id: string;
@Column('int', { primary: true, name: 'CatDB' })
public db: number;
@Column('varchar', { name: 'Name' })
public name: string;
@Column('datetime', { name: 'DDB_LAST_MOD' })
public ddbLastMod: Date;
}
还有 dto,我进入控制器:
export class InsertCatsDto {
public id: string;
public db: number;
public name: string;
}
在控制器中执行保存:
@Post('/cats')
public async insertEobResponse(@Body() insertCatsDto: InsertCatsDto): Promise<any> {
const cats = new CatsEntity();
cats.id = insertCatsDto.id;
cats.db = insertCatsDto.db;
cats.name = insertCatsDto.name;
cats.ddbLastMod = new Date();
return this.catsRepository.insert(cats);
}
但是当我通过 Postman 发送带有 id 作为字符串的请求时,我收到以下错误:
我不确定我是否只是缺少某些东西或需要对值进行一些转换,或者这是否是 typeorm 的一个真正问题。
【问题讨论】:
-
你为什么将
id称为字符串? -
@AaronBertrand 当我路由实体时,我受到了这个主题 stackoverflow.com/questions/59927625/… 的启发,并在 typeorm.io/#/entities/column-types 中有一个关于 bigInt 的注释,这就是为什么它是一个字符串
标签: sql-server nestjs typeorm