mysql - Typeorm "ER_BAD_FIELD_ERROR: Coluna desconhecida 'entity.entityId' na 'cláusula where'"
Estou tentando fazer uma pesquisa filtrando os resultados com base nas categorias, nas seguintes entidades:
@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;
}
para isso estou usando esta função que utiliza as opções de busca do TypeORM conforme prescrito na documentação:
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);
}
}
O erro é o seguinte:
"ER_BAD_FIELD_ERROR: Coluna desconhecida 'a.animeId' na 'cláusula where'"
Eu sei que esta coluna realmente não existe na entidade anime, mas ela não deveria estar fazendo esse filtro na coluna de junção? Alguém pode me dizer se estou fazendo algo errado ou como consertar esse bug?