首页 > 解决方案 > ObjectBox:中止事务?

问题描述

如果我的一项操作失败,如何中止我在 ObjectBox 中的写入事务?我在 Runnable 或 boxStore 或其中一个框内看不到任何可用于中止事务的东西。例如,如果我在运行事务时遇到不相关的 I/O 错误,我不希望我的操作有一半被应用而另一半不被应用。

标签: androidtransactionsobjectbox

解决方案


抛出异常。例如

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

推荐阅读