웹사이트 검색

javascript - Prisma findMany 함수가 관계형 데이터를 반환하지 않음


저는 Prisma 2.28.0을 사용하여 관계형 데이터를 제 데이터에 채우려고 하고 있습니다. 여기에 제

아래 Schema.prisma 모델

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?
}


내가 데이터를 가져오려고 하는 함수.

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' }
]

거래 DB 결과

제품 DB

왜 제 findMany()가 관계형 DB 데이터를 반환하지 않는지 모르겠습니다. 감사합니다

답변 #1

저는 문서를 읽어보시길 권장합니다, 특히 이 장과 그 다음 장들을요. 예제에서는 Author와 Post가 있으며, Post에는 Author를 가리키는 author 필드가 있습니다. 그들의 코드는 다음과 같습니다:

const getPosts = await prisma.post.findMany({
  where: {
    title: {
      contains: 'cookies',
    },
  },
  include: {
    author: true, // Return all fields
  },
})

사실 조금 아래에 있는 'Include deeply nested relations' 장에서는 예제의 .transactions와 마찬가지로 배열인 .category 필드를 사용합니다.

답변 #2

포함을 true로 명시적으로 설정해야 합니다.

그래서 코드가 당신에게는 이렇게 보일 것입니다

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();