OrientDB: ошибка внутри пакетного скрипта не откатывается - PullRequest
0 голосов
/ 13 февраля 2020
begin;
let t = create Vertex Ticket set ticketType = "premium"
create edge For from $t to #42:1;
create edge At from $t to #37:0;
create edge Created from #46:1 to $t;
commit;

В приведенном выше пакетном скрипте при создании ребра «Создано» (оператор №: 5) запись № 46: 1 не найдена (удалена), поэтому выдается исключение. Как мне откатить транзакцию в этом случае?

PS: я использую orient js library

1 Ответ

0 голосов
/ 14 февраля 2020

Инициализируйте транзакцию в сеансе, затем выполните пакетное обновление (без начала и фиксации) и выполните фиксацию или откат.

try {
  session.begin()
  await session.batch(...)
  session.commit(..)
} catch (e) {
  session.tx().rollback();
}
...