#node.js #graphql #prisma #prisma-graphql
#node.js #graphql #prisma #prisma-graphql
Вопрос:
prisma v1.28.3,
nodeJs: v10.15.3
Допустим, у нас есть следующие определения prisma
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 и выполнить откат, если какое-либо из обновлений не удалось?
Ответ №1:
Клиент Prisma действительно генерирует id_in
фильтр:
При этом у prisma появилась новая спецификация, которая позволит улучшить функциональность пакетной обработки и транзакций. Смотрите: https://github.com/prisma/rfcs/blob/new-ts-client-rfc/text/0000-new-ts-client.md