Я получаю этот объект запроса:
{
name: string[],
}
И у меня есть объект со следующими столбцами:
@Column()
country: string;
@Column('text', {array: true})
name: string[];
Мне нужно проверить, содержится ли массив имен запроса в столбец имени в запросе. Это работает в PostgreSQL:
SELECT *
FROM my_table
where name <@ ARRAY['name1','name2', 'name3']
Если мой объект запроса будет выглядеть как
{
name: ["name1", "name2", "name3"]
}
Я бы ожидал, что следующий построитель запросов воспроизведет тот же результат, что и запрос Postgres :
const queryBuilder = this.my_repository.createQueryBuilder();
queryBuilder.where(`name <@ ARRAY[:name_request]`, { name_request: request.name });
queryBuilder.getMany();
Но он не находит никаких результатов, поэтому я предполагаю, что он не строит часть "ARRAY ['name1', 'name2', 'name3']".
Я уже пытался напечатать queryBuilder.get SQL (), чтобы проверить, как формировался запрос, но он не покажет мне, как он подставил параметр name_request (он просто показывает $ 1). Я также попытался добавить различные комбинации кавычек вокруг значений и явно подставить каждое значение имени в строку where, но это все равно не будет работать.
Я использую @ nestjs / typeorm 6.2.0.
Есть какие-нибудь советы?