【发布时间】:2020-12-19 18:28:42
【问题描述】:
我正在尝试创建一个 graphql 查询来查询两个数据库表并返回一个自定义对象。我很难弄清楚如何定义这种自定义类型。
我在 typeorm 中创建了两个实体:Track 和 Vehicle:
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from "typeorm";
import { ObjectType, Field, ID } from "type-graphql";
@ObjectType()
@Entity()
export class Track extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number;
@Field()
@Column("text", { unique: true })
trackId: string;
@Field()
@Column()
origin: string;
@Field()
@Column("text", { unique: true })
name: string;
}
import { Entity, PrimaryGeneratedColumn, Column, BaseEntity } from "typeorm";
import { ObjectType, Field, ID } from "type-graphql";
@ObjectType()
@Entity()
export class Vehicle extends BaseEntity {
@Field(() => ID)
@PrimaryGeneratedColumn()
id: number;
@Field()
@Column("text", { unique: true })
vehicleId: string;
@Field()
@Column()
vehicleFolder: string;
@Field()
@Column("text", { unique: true })
name: string;
}
我想做一个返回如下对象的查询:
interface TracksAndVehicles {
tracks: Track[];
vehicles: Vehicle[];
我不知道该怎么做。这是我的解析器:
import { Resolver, Query, Field, ObjectType } from "type-graphql";
import { Track } from "../../entity/Track";
import { Vehicle } from "../../entity/Vehicle";
@ObjectType()
class TracksAndVehicles {
@Field()
tracks: Track[];
@Field()
vehicles: Vehicle[];
}
@Resolver()
export class GetTracksAndVehiclesResolver {
@Query(() => TracksAndVehicles)
async getTracksAndVehicles(): Promise<TracksAndVehicles> {
const tracks = await Track.find();
const vehicles = await Vehicle.find();
return { tracks, vehicles };
}
}
我收到此错误:Error: You need to provide explicit type for TracksAndVehicles#tracks
有什么想法吗?
【问题讨论】:
标签: typescript graphql typeorm typegraphql