Есть ли способ пакетного обновления объектов в Prisma, используя вложенное создание

prisma v1.28.3,
nodeJs: v10.15.3

Допустим, у нас есть следующие определения призмы

type ScheduledCharge {
 processedAt: DateTime!
 transactions: [Transaction!]!
}

type Transaction {
 id: ID! @unique
 amount: number
}

Теперь, учитывая, что у нас есть коллекция ScheduledCharge, есть ли способ пакетного обновления ScheduledCharge с созданием вложенного объекта, в идеале что-то вроде этого

prisma.updateManyScheduledCharges({
  where: {
    id_in: [1, 2, 3]
  },
  data: {
    transactions: {
      create: [{
        amount,
      }]
    }
  },
})

Но упомянутое выше не генерируется клиентом prisma, однако я мог бы пройти через запланированный сбор платежей и сделать следующее

for (const { id: scheduledChargeId } of scheduledCharges) {
  prisma.updateScheduledCharge({
    where: {
      id: scheduledChargeId
    },
    data: {
      transactions: {
        connect: [{
          id: transactionId,
        }]
      }
    },
  })
}

Если я сделаю вышеупомянутое, кто-нибудь знает, могу ли я использовать транзакции MySQL с клиентом prisma и выполнить откат, если какое-либо из обновлений не удалось?


person Fernando Avalos    schedule 07.04.2019    source источник


Ответы (1)


Клиент Prisma действительно создает id_in фильтр:  Prisma Id_in demo

При этом у нас, у prisma, есть новая спецификация, которая позволит улучшить функциональность пакетной обработки и транзакций. См .: https://github.com/prisma/rfcs/blob/new-ts-client-rfc/text/0000-new-ts-client.md

person Harshit Pant    schedule 08.04.2019