Website-Suche

mysql - Typeorm "ER_BAD_FIELD_ERROR: Unbekannte Spalte 'entity.entityId' in der 'WHERE-Klausel'"


Ich versuche, eine Suche durchzuführen, indem ich die Ergebnisse basierend auf den Kategorien bei den folgenden Entitäten filtere:

@Entity()
export class Anime {
  @PrimaryGeneratedColumn('uuid')
  id?: string;

  @Column({ nullable: false })
  name: string;


  @ManyToMany(type => Category)
  @JoinTable()
  categories: Category[];
}

@Entity()
export class Category {
  @PrimaryGeneratedColumn('uuid')
  id: string;

  @Column({ nullable: false })
  name: string;

  @Column({ default: 'Descrição não fornecida' })
  description: string;
}

Dafür verwende ich diese Funktion, die die Find-Optionen von TypeORM wie in der Dokumentation vorgeschrieben nutzt:

    constructor(
    @InjectRepository(Anime) private readonly db: Repository<Anime>,
  ) {}

    async findAll(
    limit: number,
    page: number,
    whereOptions: WhereExpression,
    orderOptions: OrderByCondition,
  ): Promise<Anime[]> {
    try {
      const animes = await this.db.find({
        take: limit,
        skip: page,
        where: {
          categories: { id: '6a999dc1-20a7-43c7-b6e2-b6eb0c883875' },
        },
        order: orderOptions,
        join: {
          alias: 'a',
          leftJoinAndSelect: {
            categories: 'a.categories',
          },
        },
        relations: ['categories'],
      });
      return animes;
    } catch (e) {
      throw new SqlException(e);
    }
  }

Der Fehler ist wie folgt:

"ER_BAD_FIELD_ERROR: Unbekannte Spalte 'a.animeId' in 'WHERE-Klausel'"

Ich weiß, dass diese Spalte in der Anime-Entität nicht wirklich existiert, aber sollte sie diese Filterung nicht in der Join-Spalte durchführen? Kann mir jemand sagen, ob ich etwas falsch mache oder wie ich diesen Fehler beheben kann?