ObjectBox: отменить транзакцию? - PullRequest
0 голосов
/ 06 декабря 2018

Как я могу прервать транзакцию записи в ObjectBox, если одно из моих действий не выполнено?Я не вижу ничего доступного в Runnable или boxStore или в одном из ящиков для отмены транзакции.Я не хочу, чтобы половина моих действий применялась, а половина не применялась, если, например, я получаю несвязанную ошибку ввода-вывода при выполнении транзакции.

1 Ответ

0 голосов
/ 06 декабря 2018

Брось исключение.Например,

try {
    boxStore.runInTx(() -> {
       for(User user: allUsers) {
         if(user.isValid()) box.put(user);
         else throw new UserInvalidException();
       }
    });
} catch (UserInvalidException e) {
    // TX is aborted
}
...