【发布时间】:2020-03-01 23:02:38
【问题描述】:
我想在 TypeGraphQL 中创建用户和文档之间的简单关系。因此,用户可以创建无限的文档,而一个文档只有一个创建者。但我收到一个错误。
用户
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity, OneToMany } from "typeorm";
import { Field, ID, ObjectType } from "type-graphql";
import { Doc } from "./Doc";
@ObjectType()
@Entity()
export class User extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number;
@Field()
@Column()
firstName: string;
@Field()
@Column()
lastName: string;
@Field()
@Column()
nickname: string;
@Field()
@Column("text", { unique: true })
email: string;
@Column()
password: string;
@Field({ nullable: true })
@Column()
created: Date;
@Field()
@Column()
gender: string;
@OneToMany(() => Doc, doc => doc.creator)
createdDocs: Promise<Doc[]>;
}
文档
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity, ManyToOne } from "typeorm";
import { Field, ID, ObjectType } from "type-graphql";
import { User } from "./User";
@ObjectType()
@Entity()
export class Doc extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number;
@Field({ nullable: true })
@Column()
created: Date;
@Field()
@Column()
@ManyToOne(() => User, user => user.createdDocs)
creator: Promise<User>;
}
错误
throw new errors_1.NoExplicitTypeError(prototype.constructor.name, propertyKey, parameterIndex);
^
Error: You need to provide explicit type for Doc#creator !
但是导致这种情况发生的原因是什么?当然,表文档中的列创建者不是真正的“数据类型”,因为它不应该是“静态的”。它必须是一个关系,而这个关系显然不能有“数据类型”。
【问题讨论】:
标签: javascript graphql typeorm typegraphql