Actualmente estoy usando TypeORM y TypeScript e intento eliminar datos. Como quiero eliminar según el propietario de 'Cliente', pensé que tenía que usar JOINS. Como no soy muy fluido con conceptos más avanzados como JOINS en SQL, agradecería cualquier ayuda con una pequeña explicación. Gracias.
El siguiente código lanza esta excepción:
"message": "\"customer\" alias was not found. Maybe you forgot to join it?", @Resolver() export class RootResolver { @Mutation(() => Boolean) async deleteAllDataByOwner( @Arg('ownerEmail') ownerEmail: string, @Ctx() { conn }: AppContext, ): Promise<boolean | undefined> { const deleteVisitsPromise = conn.createQueryBuilder() .leftJoinAndSelect("customer.visits", "visit") .delete() .from(Customer) .where("customer.owner = :owner", { owner: ownerEmail }) .execute() const deleteCustomersPromise = conn.createQueryBuilder() .delete() .from(Customer) .where("customer.owner = :owner", { owner: ownerEmail }) .execute() return await Promise.all( [deleteCustomersPromise, deleteVisitsPromise] ).then(_ => { return true }) } } @ObjectType() @Entity({ name: 'customers' }) export class Customer { @Field() @PrimaryColumn() uuid: string @Field(() => [Visit], { nullable: true }) @OneToMany(() => Visit, (visit) => visit.customer) visits?: (Visit | null)[] // ... } @ObjectType() @Entity({ name: 'visits' }) export class Visit { @Field() @PrimaryColumn() uuid: string @Field(() => Customer) @ManyToOne(() => Customer, (customer) => customer.visits, { onDelete: 'CASCADE' }) customer: Customer // ... }