TypeORM GraphQL嵌套查询返回null
我正在尝试使用GraphQL嵌套查询来获取有关项目a和客户的信息。我可以获得有关项目的信息,但我无法获得客户信息 如何正确获取嵌套信息 项目模型TypeORM GraphQL嵌套查询返回null,graphql,typeorm,Graphql,Typeorm,我正在尝试使用GraphQL嵌套查询来获取有关项目a和客户的信息。我可以获得有关项目的信息,但我无法获得客户信息 如何正确获取嵌套信息 项目模型 import { Entity, BaseEntity, PrimaryGeneratedColumn, Column, ManyToOne} from "typeorm"; import { ObjectType, Field, ID } from "type-graphql"; import {Customer} from "./Customer
import { Entity, BaseEntity, PrimaryGeneratedColumn, Column, ManyToOne} from "typeorm";
import { ObjectType, Field, ID } from "type-graphql";
import {Customer} from "./Customer";
@Entity('project')
@ObjectType()
export class Project extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number;
@Field(() => String)
@Column()
name: string;
@Field(() => String)
@Column()
short_name: string;
@Field(() => String)
@Column()
description: string;
@Field(() => Customer, { nullable: true })
@ManyToOne(type => Customer, customer => customer.projects)
customer: Customer;
}
用户模型
import { Entity, BaseEntity, PrimaryGeneratedColumn, Column, OneToMany, JoinTable } from "typeorm";
import { ObjectType, Field, ID } from "type-graphql";
import {Project} from "./Project";
import {ProjectUser} from "./Project_handled_by_user";
@Entity('customer')
@ObjectType()
export class Customer extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number;
@Field(() => String)
@Column()
name: string;
@Field(() => String)
@Column()
short_name: string;
@Field(() => String)
@Column()
active: string;
@Field(() => [Project], { nullable: true })
@OneToMany(type => Project, project => project.customer)
projects: Project[];
}
项目解析器
import { Resolver, Query, Mutation, Arg } from "type-graphql";
import { Project } from "../models/Project";
@Resolver()
export class ProjectResolver {
@Query(() => [Project])
projects() {
return Project.find();
}
@Query(() => Project)
project(@Arg("id") id: string) {
return Project.findOne({ where: { id } });
}
}
例如,我的查询是:
{
project(id: "1"){
id
name
customer{
id
name
}
}
}
查询返回:
{
"data": {
"project": {
"id": "1",
"name": "KFS 5.1",
"customer": null
}
}
}
感谢您的帮助您需要明确告诉typeorm在查询中包含关系,例如:`return Project.findOne({where:{id},relations:['customer']});`。或者使用FieldResolver修饰的方法,检查文档:您需要显式地告诉typeorm在查询中包含关系,例如:`return Project.findOne({where:{id},relations:['customer']});`。或者使用FieldResolver修饰的方法,检查文档: