小编jon*_*eve的帖子

TypeOrm:使用 uuid 数据类型作为键而不是整数创建多对一关系

我有一个使用 TypeORM 和 PostgreSQL 数据库的 Typescript Nestjs 项目,我在定义多对一关系时遇到了麻烦,因为 TypeORM 试图创建一个整数类型的 ID 字段,而我使用的是 UUID 字段。有没有办法告诉 TypeORM 使用与整数不同的数据类型?

下面是一个不工作的实体的例子:

export class AgentKitsEntity implements Model {
  @PrimaryGeneratedColumn()
  @Generated('uuid')
  id: string;
}

@Entity({name: 'users'})
export class User extends AgentKitsEntity implements UserModel {
  @Column()
  username: string;

  @ManyToOne(type => View)
  @JoinColumn({name: 'view_id', referencedColumnName: 'id'})
  view: View;
}
Run Code Online (Sandbox Code Playgroud)

这会导致以下错误:

query failed: ALTER TABLE "users" ADD CONSTRAINT "FK_2ed8b186dce83a446f94ac9aae4" FOREIGN KEY ("view_id") REFERENCES "views"("id")
error: { error: foreign key constraint "FK_2ed8b186dce83a446f94ac9aae4" cannot be implemented
    at Connection.parseE (/home/jonathan/projects/agent-kits/api-data/node_modules/pg/lib/connection.js:554:11)
    at Connection.parseMessage …
Run Code Online (Sandbox Code Playgroud)

postgresql node.js typescript typeorm nestjs

4
推荐指数
1
解决办法
4423
查看次数

标签 统计

nestjs ×1

node.js ×1

postgresql ×1

typeorm ×1

typescript ×1