Prisma 2.28.0调用findMany方法无法返回关联数据是什么原因?
Prisma默认采用按需加载策略,不会自动返回关联表数据,你需要在查询时显式使用include参数指定要加载的关联字段。
修复后的查询代码
const { PrismaClient }=require("@prisma/client") const prisma = new PrismaClient() async function checkPrismaConnection(){ try { const result=await prisma.product.findMany({ // 显式声明需要加载的关联表 include: { transactions: true } }); console.log(result); }catch (e) { console.log(e); } } checkPrismaConnection();
返回结果示例
修改后查询结果会自动携带关联的交易数据:
[ { "id": 1, "name": "John Doe", "transactions": [ {"id": 1, "quantity": 10, "time": 16xxxxxxx, "productId": 1}, // 其他关联的transaction记录 ] }, // 其他product记录 ]
进阶用法
如果只需要获取关联表的部分字段,或者需要对关联数据做筛选、排序,可以对include参数做更精细的配置:
const result=await prisma.product.findMany({ include: { transactions: { // 只返回关联交易的数量和时间字段 select: { quantity: true, time: true }, // 筛选关联交易,只返回数量大于5的记录 where: { quantity: { gt: 5 } } } } });
内容的提问来源于stack exchange,提问作者Md Rezaul Karim
相关产品推荐
相关产品推荐

