我的模式如下所示:
model Transaction {
id BigInt @id @default(autoincrement())
description String? @db.VarChar(256)
category Category? @relation(fields: [categoryId], references: [id])
createdById Int @map("fk_created_by")
createdBy UserAccount @relation("category_fk_created_byTouser_account", fields: [createdById], references: [id]
}
model Category {
id Int @id @default(autoincrement())
name String @db.VarChar(40)
categoryFilters CategoryFilter[]
}
model CategoryFilter {
id BigInt @id @default(autoincrement())
words String @db.VarChar(255)
categoryId Int? @map("fk_category_id")
}我的问题是,为什么要这样做:
await prisma.workspaceTransaction.create({
data: {
description: 'any',
createdBy: {
connect: {
id: 1
}
},
category: {
create: {
name: 'Este é um teste',
createdById: 1,
categoryFilters: {
createMany: {
data: [
{
words: 'Novo teste'
}
]
}
}
}
}
}
})这不是吗?
await prisma.workspaceTransaction.create({
data: {
description: 'any',
createdById: 1,
category: {
create: {
name: 'Este é um teste',
createdById: 1,
categoryFilters: {
createMany: {
data: [
{
words: 'Novo teste'
}
]
}
}
}
}
}
})这两个例子之间唯一的区别是createdBy命令。而且我可以使用createdById参数创建没有嵌套对象的事务。有人知道为什么会这样吗?还是我错过了什么?
给出的错误是:未知的arg createdById在data.createdById中用于TransactionCreateInput类型
发布于 2022-04-13 13:15:50
在第二个示例中,您直接编写一个被认为不安全的外键(createdById),如果没有对应于createdById的UserAccount怎么办。
在第一个示例中使用connect时,如果Prisma找不到对应于id 1的UserAccount,则会引发错误。
第一个例子是首选的方法。
https://stackoverflow.com/questions/71845820
复制相似问题