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

Prisma报错:无法同时选择'$scalars: true'与特定字段'accountCompanies'求助

解决Prisma查询错误:Cannot select both '$scalars: true' and a specific scalar field 'accountCompanies'

问题详情

错误提示:Cannot select both '$scalars: true' and a specific scalar field 'accountCompanies'

数据模型定义

model Account {
  id String  @id @default(cuid())
  avatar String?
  lastName String
  firstName String

  accountCompanies AccountCompany[]
}

model Company {
  id String  @id @default(cuid())
  name String

  accountCompanies AccountCompany[]
}

model AccountCompany {
  account Account @relation(fields: [accountId], references: [id], onDelete: Cascade)
  accountId String
  company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)
  companyId String
  role Role  @default(GENERAL)

  @@id(fields: [accountId, companyId])
}

触发错误的查询代码

const account = await prisma.account.findUnique({
  where: { auth0UserId: auth0User.sub },
  include: { accountCompanies: true },
});

错误原因

这个错误是因为查询同时使用了隐式的全量标量选择($scalars: true)和显式指定关联字段accountCompanies,Prisma不允许这种混合写法。另外注意你的Account模型中没有定义auth0UserId字段,当前查询的where条件也会触发字段不存在的错误,需要先补全模型字段。

修复步骤

  1. 补全数据模型字段
    在Account模型中添加auth0UserId字段:
model Account {
  id String  @id @default(cuid())
  avatar String?
  lastName String
  firstName String
  auth0UserId String @unique // 添加该字段并设置唯一约束
  accountCompanies AccountCompany[]
}
  1. 修改查询代码
    用select语法明确指定需要的标量字段和关联字段,替代隐式全量选择:
const account = await prisma.account.findUnique({
  where: { auth0UserId: auth0User.sub },
  select: {
    id: true,
    avatar: true,
    lastName: true,
    firstName: true,
    accountCompanies: true
  },
});

如果需要所有标量字段,也可以用$allScalars(需Prisma较新版本支持):

const account = await prisma.account.findUnique({
  where: { auth0UserId: auth0User.sub },
  select: {
    $allScalars: true,
    accountCompanies: true
  },
});
  1. 更新数据库与客户端
    修改模型后,运行以下命令同步数据库并重新生成Prisma客户端:
prisma migrate dev # 开发环境
prisma generate

内容的提问来源于stack exchange,提问作者Yusuke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:33:29