我很难概念化如何处理这个问题。我仔细研究了 Prisma 文档和其他 SO 问题,但它们似乎都与这种情况略有不同。
我有两个模型:
model User {
id Int @id @default(autoincrement())
firstName String? @map("first_name")
lastName String? @map("last_name")
email String @unique
password String
role UserRole @default(value: USER)
image String? @map("image")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
friends Friend[]
@@map("users")
}
model Friend {
id Int @id @default(autoincrement())
inviteSentOn DateTime @map("invite_sent_on") @db.Timestamptz(1)
inviteAcceptedOn DateTime @map("invite_accepted_on") @db.Timestamptz(1)
userId Int @map("user_id")
friendId Int @map("friend_id")
createdAt DateTime @default(now()) @map("created_at")
updatedAt DateTime @updatedAt @map("updated_at")
user User @relation(fields: [userId], references: [id])
// friend User? @relation(name: "FriendFriend", fields: [friendId], references: [id])
@@map("friends")
}
我希望能够在 Friend 模型上设置关系,使其都指向 User 模型,但是我收到以下错误Error validating field 'friend' in model 'Friend': The relation field 'friend' on Model 'Friend' is missing an opposite relation field on the model 'User'.
我尝试将 name 属性添加到 @relation 字段,但开始收到有关检测到不明确关系的错误。
我该如何正确设置这些关系?
您只需提供name
消除关系的歧义,如下所示:
model User {
id Int @id @default(autoincrement())
friend Friend?
friends Friend[] @relation(name: "friends")
}
model Friend {
id Int @id @default(autoincrement())
userId Int
friendId Int
user User @relation(fields: [userId], references: [id])
friend User @relation(fields: [friendId], references: [id], name: "friends")
}
不要忘记,关系双方都需要与对方建立联系。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)