javascript - Fungsi Prisma findMany tidak mengembalikan data relasional
Saya mencoba mengisi data saya dengan data relasional menggunakan Prisma 2.28.0, berikut adalah saya
Model Schema.prisma di bawah
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?
}
fungsi yang saya coba gunakan untuk mengambil data.
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' }
]
Hasil DB transaksi
Basis Data Produk
Saya tidak tahu mengapa findMany() saya tidak mengembalikan data database relasional. Terima kasih
Jawaban #1
Saya menyarankan untuk membaca dokumentasinya, terutama bab ini dan bab-bab berikutnya. Dalam contoh mereka, mereka memiliki Author dan Post, di mana Post memiliki bidang author yang menunjuk ke Author. Kode mereka terlihat seperti ini:
const getPosts = await prisma.post.findMany({
where: {
title: {
contains: 'cookies',
},
},
include: {
author: true, // Return all fields
},
})
Bab "Include deeply nested relations" sedikit lebih bawah sebenarnya menggunakan sebuah field .category yang juga merupakan array, seperti dalam contoh Anda dengan .transactions.
Jawaban #2
Anda perlu secara eksplisit mengatur include menjadi true.
Jadi kodenya akan terlihat seperti ini untukmu
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();

