Есть ли способ пакетного обновления объектов в призме с помощью вложенного создания - PullRequest
0 голосов
/ 07 апреля 2019
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,
      }]
    }
  },
})

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

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

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

1 Ответ

0 голосов
/ 08 апреля 2019

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

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

...