android - ObjectBox:中止事务?
问题描述
如果我的一项操作失败,如何中止我在 ObjectBox 中的写入事务?我在 Runnable 或 boxStore 或其中一个框内看不到任何可用于中止事务的东西。例如,如果我在运行事务时遇到不相关的 I/O 错误,我不希望我的操作有一半被应用而另一半不被应用。
解决方案
抛出异常。例如
try {
boxStore.runInTx(() -> {
for(User user: allUsers) {
if(user.isValid()) box.put(user);
else throw new UserInvalidException();
}
});
} catch (UserInvalidException e) {
// TX is aborted
}
推荐阅读
- ios - 将 JSON 数据传递给类中的数组(Alamofire + SwiftyJSON)
- c# - 简单验证
- sql - 比较并获取基于月份插入到表中的新数据
- c++ - 如何在多个 Catch2 测试用例中检查相同的条件
- java - Anylogic - 从其他代理访问变量
- flutter - 在flutter插件中实现外部库android
- google-maps - 具有引用者限制的 API 密钥不能与此 API 一起使用
- laravel - Laravel 5.7 安装问题
- ajax - chrome 上的 Api Url 返回响应,但不是 Postman
- c# - 左键单击 WPF Web 应用程序上下文菜单