728x90
기존의 prisma 1 버젼에서는 별 문제없이 조회되던 쿼리문이
prisma 2 가서 안되는 경우가 있다.
예를들어, 스키마가 아래 같이 정의 되어 있을때
model User {
id Int @default(autoincrement()) @id
email String @unique
name String
posts Post[]
}
model Post {
id Int @default(autoincrement()) @id
title String @default("")
content String
author User @relation(fields:[authorId] references:[id])
authorId
}
|
cs |
resolver 코드를 아래 같이 작성하고
export default {
Query: {
searchUser: (_, args) => {
const { id } = args;
return prisma.user.findOne({
where: {
id
}
});
}
}
}
|
cs |
다음과 같이 playground 에서 조회를 시도하면
{
searchUser(id: 1) {
id
posts {
id
title
}
}
}
|
cs |
prisma 1 의 경우, 별 문제 없이
id, posts 값을 리턴했다.
그러나 prisma 2 로 바뀌면서
이렇게 조회를 시도하면 posts 가 없는 값이라고 뜨게 된다.
이럴때는 아래처럼 resolver 부분에 include 를 추가한다.
export default { Query: { searchUser: (_, args) => { const { id } = args; return prisma.user.findOne({ where: { id }, include: { posts: true } }); } } } | cs |
이렇게 include 를 추가하면
정상적으로 playground 에 조회결과가 나오고 null 이 사라지게 된다.
728x90
'JS' 카테고리의 다른 글
# 33 가지 Javascript 필수 개념 - 6. Scope (0) | 2020.09.25 |
---|---|
schema.prisma 정리 (0) | 2020.09.10 |
GraphQL Server 구성 (1) | 2020.09.07 |
webpack (1) (0) | 2020.09.06 |
Prisma Migration 관련 오류 (0) | 2020.09.03 |