Я не могу найти ничего в документации по использованию транзакций с Classes API.
Существует метод Db#begin()
, который запускает новую транзакцию. Итак, учитывая код ниже:
const db = server.use('MyDb');
const transaction = db.begin();
const Product = await transaction.db.class.get('Product');
//Transaction already gets committed to the database here before commit is executed
await Product.create({name: 'Milk', brand: 'Clover'})
transaction.commit()
Я бы подумал, что транзакция будет совершена только на transaction.commit()
, но она будет зафиксирована немедленно. Я знаю о синтаксисе db.let()
, но с чем-то вроде выше было бы намного проще работать.
Я не вижу значения метода Class#create(record)
, если вы не можете использовать его с транзакцией. Что заставляет меня верить, что я что-то упустил, но я ломал голову над этим последний день.