javascript - A Prisma findMany függvény nem adja vissza a relációs adatokat
Prisma 2.28.0 használatával próbálom feltölteni az adataimat relációs adatokkal, íme az én
A Schema.prisma modell alább
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Product {
id Int @id @default(autoincrement())
name String @db.VarChar(255)
transactions Transaction[]
}
model Transaction {
id BigInt @id @default(autoincrement())
quantity Int
time Int
product Product? @relation(fields: [productId], references: [id])
productId Int?
}
az a funkció, amellyel adatokat próbálok lekérni.
const { PrismaClient }=require("@prisma/client")
const prisma = new PrismaClient()
async function checkPrismaConnection(){
try {
const result=await prisma.product.findMany();
console.log(result);
}catch (e) {
console.log(e);
}
}
checkPrismaConnection();
OutPut
[
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Masum' },
{ id: 3, name: 'Rezaul' }
]
Tranzakciós adatbázis eredmény
Termék adatbázis
Nem tudom, miért nem adja vissza a findMany() a relációs adatbázis adatokat. Köszönöm
Válasz #1
Azt javaslom, hogy olvasd el a dokumentációt, különösen ezt a fejezetet és az azt követőket. A példájukban van egy Author és egy Post, ahol a Post rendelkezik egy author mezővel, amely egy Author-ra mutat. A kódjuk így néz ki:
const getPosts = await prisma.post.findMany({
where: {
title: {
contains: 'cookies',
},
},
include: {
author: true, // Return all fields
},
})
A "Mélyen beágyazott kapcsolatok bevonása" fejezet egy kicsit lejjebb valójában egy .category mezőt használ, amely szintén tömb, ahogy a te példádban a .transactions esetében.
Válasz #2
Külön ki kell jelölnöd, hogy az include igaz legyen.
Tehát a kód így fog kinézni számodra
const { PrismaClient }=require("@prisma/client")
const prisma = new PrismaClient()
async function checkPrismaConnection(){
try {
const result=await prisma.product.findMany({
include: {
transaction: true,
},
});
console.log(result);
}catch (e) {
console.log(e);
}
}
checkPrismaConnection();

