You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Prisma中声明可选双向一对一关系?

问题解决:Prisma双向一对一关系配置错误

你遇到的错误原因是:在双向一对一关系中,Prisma只允许在其中一方的@relation属性里指定fields和references参数,不能两边都添加。

你的需求是建立可选的双向一对一关系(Ingreso可关联一个Egreso,Egreso也可关联一个Ingreso,双方关联均允许为NULL),正确的模型配置如下:

model Ingreso {
  id Int @id @default(autoincrement())

  idEgreso Int?    @unique @map("id_egreso")
  egreso   Egreso? @relation("IngresoEgresoLink", fields: [idEgreso], references: [id])

  @@map("ingresos")
}

model Egreso {
  id Int @id @default(autoincrement())

  idIngreso Int?     @unique @map("id_ingreso")
  ingreso   Ingreso? @relation("IngresoEgresoLink")

  @@map("egresos")
}

关键说明:

  • 给关系指定明确的名称(比如IngresoEgresoLink),确保Prisma识别这是同一个双向关系,而非两个独立的单向关系。
  • 仅在其中一个模型的关系字段(示例中为Ingreso里的egreso)中定义fields和references,用来关联外键字段与对方模型的主键。
  • 另一方的关系字段只需通过关系名称关联即可,无需重复指定fields和references。

配置完成后,两个模型就能建立你需要的可选双向一对一关联,同时避免语法错误。

内容的提问来源于stack exchange,提问作者Jose Carlos Gutiérrez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 13:31:12