import { Arg, Field, ObjectType, Query, Resolver } from 'type-graphql'
import type { EntityManager } from 'typeorm'
import { MyEntity } from '../../model/generated'
// Define custom GraphQL ObjectType of the query result
export class MyQueryResult {
@Field(() => Number, { nullable: false })
@Field(() => Number, { nullable: false })
constructor(props: Partial<MyQueryResult>) {
Object.assign(this, props);
export class MyResolver {
// Set by depenency injection
constructor(private tx: () => Promise<EntityManager>) {}
@Query(() => [MyQueryResult])
async myQuery(): Promise<MyQueryResult[]> {
const manager = await this.tx()
// execute custom SQL query
const result: = await manager.getRepository(MyEntity).query(