android - Room/sqlite 数据库锁和隔离级别
问题描述
(问题是在具有 mvvm 模式和 room/sqlite 数据库的 kotlin android 应用程序的上下文中)
可以说我有一个带有屏幕的 android 应用程序,该应用程序带有一个创建唯一实体的表单。
例如,我创建一个像这样的对象/实体(伪代码):
class Trip {
string id;
string name;
datetime date;
string countryId;
}
现在,countryId
引用国家表并存储国家信息,例如:
class Country {
string id;
string name;
string countryCode;
boolean allowedForTravel;
}
现在,当我进入Trip
创建屏幕时,我有输入字段,name, date
并且有一个下拉菜单可以选择一个国家。该下拉列表中充满了SELECT * FROM Countries WHERE allowedForTravel = true
.
所以,想象一下场景:
- 用户来到旅行创建屏幕
- 国家下拉列表被填满
- 用户从下拉列表中选择国家 X
- countryX 通过其他一些过程(推送通知或其他)在数据库中更新到现在
allowedForTravel= false
name,date
旅行用过的填充物- 用户点击
save
按钮
我想将其保存在交易中,以便能够在写入时检查所选国家是否允许旅行。
如何使用 Room 和 SQLlite 来实现这一点?
我相信应该使用一些事务和隔离级别,但不知道哪个以及如何使用?
解决方案
推荐阅读
- laravel - 如何在 vuejs2 中执行“用户停止输入后提交表单”
- reactjs - 防止第一次获取没有参数的api?
- java - 使用 ArrayList 的冒泡排序有什么问题?
- sql - 使用 Ruby 变量进行 Ruby on Rails 数据库查询
- sql-server - 计算 3 个表中的多次出现并创建/插入到第 4 个表中
- python - 如何将 tkinter 中 Entry 小部件的结果文本斜体?
- swift - 重新安装的应用程序使用 cloudkit 保留以前的核心数据
- android - 如何在android Q中使用ssid和密码连接WIFI?
- python - 熊猫隐藏一列,留在df中,但不显示在html表中
- vba - 通过 vba 读取 html 文件