0

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

4

1 回答 1

0

抛出异常。例如

try {
    boxStore.runInTx(() -> {
       for(User user: allUsers) {
         if(user.isValid()) box.put(user);
         else throw new UserInvalidException();
       }
    });
} catch (UserInvalidException e) {
    // TX is aborted
}
于 2018-12-06T14:04:19.790 回答