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?