我有一个图标实体,其中包含类别的列表:
import { Entity, Column, ManyToMany } from "typeorm";
import { ObjectType, Field } from "type-graphql";
import { Base } from "./Base";
import { Category } from "./Category";
@ObjectType()
@Entity()
export class Icon extends Base {
@Field()
@Column()
name: string;
@Field(() => [Category])
@ManyToMany(() => Category, category => category.icons)
categories: Category[];
}
在我的 IconResolver 突变中:
@Mutation(() => Icon!)
async createIcon(
@Arg("input") input: CreateIconInput
): Promise<Icon> {
return Icon.create(input).save();
}
输入类型为:
@InputType()
class CreateIconInput implements Partial<Icon> {
@Field() name!: string;
}
如果我在Apollo GraphQL Client中运行突变
mutation
{
createIcon(input:{name: "Ice cream" code: "icecream_Cone" })
{
id
name
categories
{
id
name
}
}
}
我得到了错误:
$“无法为非空字段Icon.categories返回null。” $
如何将类别数组初始化为空数组而不是null?我试图将代码放入创建新createIcon
的{{1}}函数中,将参数从输入复制到新Icon
,将Icon
数组更改为空{ {1}}数组,然后保存该新项目而不是输入。但是,这不起作用,这看起来很奇怪,因为它应该保存空数组。
实体定义有问题吗?