#typeorm
#typeorm
Вопрос:
Шаги для воспроизведения или небольшой репозиторий, показывающий проблему:
let pid = tabla.id
return await this.Repository.update(
{predeterminado: false},
{predeterminado: true, id: Not(pid)})
Приведенное выше выдает следующую ошибку: ожидаемый тип исходит из свойства ‘id’, которое объявлено здесь в типе ‘QueryDeepPartialEntity’
Если я делаю это с помощью Query Builder, он работает нормально.
let pid = tabla.id
return await this.Repository
.createQueryBuilder()
.update(AlicuotasIva)
.set({predeterminado: false})
.where("id != :pid",{pid})
.andWhere("predeterminado = 1")
.execute();
Ответ №1:
Из вашего примера я не уверен, что вы правильно задали параметры, я опишу их в комментариях к коду:
let pid = tabla.id
return await this.Repository.update(
{predeterminado: false}, // <-- first parameter of update method is criteria (find condition)
{predeterminado: true, id: Not(pid)}) // <-- the second parameter is your updates
Итак, я думаю, вам нужно просто переключить параметры местами, и это сработает:
let pid = tabla.id
// this query means that you set 'predeterminado' to 'false' for those rows which currently 'predeterminado == true' and their 'id != pid'
return await this.Repository.update(
{predeterminado: true, id: Not(pid)},
{predeterminado: false}
)
Комментарии:
1. Верно, вы абсолютно правы. Большое вам спасибо за ваш ответ.