Impossible d'insérer des bigint dans SQL Server à l'aide de typeorm (NestJS)

0

La question

Je veux insérer un enregistrement dans SQL Server à l'aide de typeorm où la colonne est de type bigint. J'ai des "Chats" de l'entité avec l'id de type: 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;
}

Et dto, que je reçois dans le contrôleur:

export class InsertCatsDto {
  public id: string;

  public db: number;

  public name: string;
}

L'enregistrement est effectué dans le contrôleur:

@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);
  }

Mais quand j'ai envoyer la demande avec l'id comme une chaîne de caractères via le Facteur, j'obtiens l'erreur suivante:

"erreur": "Erreur: la Validation a échoué pour le paramètre '0'. La valeur doit être comprise entre -9007199254740991 et 9007199254740991, inclusivement. Pour les plus petits ou les plus grands nombres, utilisation de type VarChar."

Je ne sais pas si je suis juste en manque de quelque chose ou avez besoin de faire quelques changement des valeurs, ou si c'est un vrai problème typeorm.

nestjs sql-server typeorm
2021-11-23 18:27:43
1

La meilleure réponse

0

Afin de rendre votre code de travail avec bigInt dans typeorm vous avez juste besoin de changer le type de l'entité de "bigint" à "varchar":

import { Column, Entity } from 'typeorm';

@Entity('Cats')
export class CatsEntity {
@Column({ type: 'varchar', 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;
}
2021-12-13 17:06:13

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................