Size: a a a

TypeORM - Русскоязычное сообщество

2021 April 16

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
через CASE … WHEN например
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ещё можно JOIN в UPDATE использовать…
источник

KB

Konstantin Belkin in TypeORM - Русскоязычное сообщество
Всем привет. Я так понимаю что метод remove не возвращает id удаленного обьекта и мне попросту сохранять его чтоб отдать в респонсе?
источник

🏡K

🏡 ILshat Khamitov in TypeORM - Русскоязычное сообщество
получил по условию идэшки, запустил удаление по этим идэшкам, отдал идэшки что ранее получил
источник

🏡K

🏡 ILshat Khamitov in TypeORM - Русскоязычное сообщество
ток так
источник

KB

Konstantin Belkin in TypeORM - Русскоязычное сообщество
Я понял, вприципе так и хотел сделать. Думал может есть какая-то настройка или опция возвращать которую я не нашел. Спасибо
источник
2021 April 20

PP

Pavel Pytliuk in TypeORM - Русскоязычное сообщество
Привет

Таблица Car
id
name
manufacturerId

Таблица Manufacturer
id
name

как можно через query builder вытянуть все cars где manufacturer определенноле значение?
источник

PP

Pavel Pytliuk in TypeORM - Русскоязычное сообщество
qb
     .select('DISTINCT "Car"."id"')
     .innerJoin('Manufacturer', 'm', '"Car"."manufacturerId" = m.id')
     .andWhere('"Car"."m"."name" = :name', {
       name: 'some name',
     })
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
distinct тут не нужен, связь и так один-ко-многим, база зря будет проходить проверяя на уникальность… в where просто m.name зачем тут ещё car
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ну и если используешь .select() то ты сбрасываешь то что qb приготовил под выборку entity. на таких запросах можно делать только getRawMany()
источник
2021 April 22

S

Sergey in TypeORM - Русскоязычное сообщество
Есть задача сделать что-то такое


const qb = await this.paymentMethodRepository
 .createQueryBuilder('method')
 .update()
 .set({ available: false })
 .where({ provider: EPaymentProvider.SOMETHING })
for (const method of methods) {
 qb.andWhere('NOT(method.name = $1 AND method.currency = $2)', [method.type, method.currency])
}


как я понимаю, typeorm не сможет понять что за $1 и $2, как вы решаете эту задачу? мб в typeorm есть метод для генерации этих параметров?
источник

AL

Andrey Listochkin in TypeORM - Русскоязычное сообщество
qb.andWhere('NOT(method.name = :name AND method.currency = :currency)’, { name: method.type, currency: method.currency})
}
источник

S

Sergey in TypeORM - Русскоязычное сообщество
так как там цикл, параметры перезапишутся в следующих итерациях, они уникальные должны быть в пределах всего SQL запроса
источник

AL

Andrey Listochkin in TypeORM - Русскоязычное сообщество
аа, сорри

qb.andWhere(`NOT(method.name = :name${index} AND method.currency = :currency${index})`, { [`name${index}`]: method.type, [`currency${index}`]: method.currency})
}
источник

AL

Andrey Listochkin in TypeORM - Русскоязычное сообщество
просто имена параметров генерь
источник

S

Sergey in TypeORM - Русскоязычное сообщество
ну вот да, тоже вижу пока только такой выход, но не хочется костылить 🙁
источник

AL

Andrey Listochkin in TypeORM - Русскоязычное сообщество
хз в чем костыль, ТайпОрм все равно потом все заменит на $1 $2 и тд
источник

S

Sergey in TypeORM - Русскоязычное сообщество
да вот я лучше сам бы массив параметров заполнил и написал конкретно индекс, а не :name${index}
источник

AL

Andrey Listochkin in TypeORM - Русскоязычное сообщество
насколько я знаю, к массиву ты из публичного апи доступа не имеешь
источник

S

Sergey in TypeORM - Русскоязычное сообщество
column "available" is of type boolean but expression is of type text

вот это поймал при запуске, хотя указано .set({ available: false })
источник