是否可以使用 typeorm 在 postgresql 中使用数字数组?

Posted

技术标签:

【中文标题】是否可以使用 typeorm 在 postgresql 中使用数字数组?【英文标题】:Is it possible for an array of number in postgresql using typeorm? 【发布时间】:2020-10-22 13:56:38 【问题描述】:

我一直在尝试在我的用户实体中创建一个 orm 类型的数字数组,但是 orm 类型一直显示这个问题

代码

@Entity()
class User 
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    username: string;

    @Column()
    password: string;

    @Column()
    points: number;

    @Column()
    time: number[];
;

终端的错误是:

(节点:25398)UnhandledPromiseRejectionWarning:DataTypeNotSupportedError:“User.time”中的数据类型“Array”不是 由“postgres”数据库支持。 在新的 DataTypeNotSupportedError (/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/error/DataTypeNotSupportedError.js:7:28) 在/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:74:27 在 Array.forEach () 在 EntityMetadataValidator.validate (/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:71:36) 在/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:42:74 在 Array.forEach () 在 EntityMetadataValidator.validateMany (/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/metadata-builder/EntityMetadataValidator.js:42:25) 在 Connection.buildMetadatas (/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/connection/Connection.js:498:33) 在连接处。 (/home/vinicius/www/Projects/Quizzer/backend/node_modules/typeorm/connection/Connection.js:128:30) 在步骤(/home/vinicius/www/Projects/Quizzer/backend/node_modules/tslib/tslib.js:141:27) (节点:25398)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在异步内部抛出 没有 catch 块的函数,或者通过拒绝一个承诺 不使用 .catch() 处理。终止未处理的节点进程 承诺拒绝,使用 CLI 标志 --unhandled-rejections=strict (参见 https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝编号:1) (节点:25398)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。在未来,承诺拒绝是 未处理将以非零退出终止 Node.js 进程 代码。

【问题讨论】:

【参考方案1】:

来自this:

@Entity()
class User 
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    username: string;

    @Column()
    password: string;

    @Column()
    points: number;

    @Column("int",  array: true )
    time: number[];
;

希望对你有帮助:)

【讨论】:

以上是关于是否可以使用 typeorm 在 postgresql 中使用数字数组?的主要内容,如果未能解决你的问题,请参考以下文章

TypeORM 中的 Postgres 枚举

节点服务器无法通过 Docker 连接到 Postgres,使用 TypeORM

我如何将 Postgres DateRange 类型与 TypeOrm 一起使用

使用 TypeORM 在 Postgres bytea 上保存缓冲区仅存储 10 个字节

如何在 typeorm、postgres 中组合 3 列唯一的?

存储 GeoJson 点并在给定距离/半径内查找点 | NODEJS、Postgres、NestJs、TypeOrm