android - 是否可以确保 Android Room 数据库中只有一行包含 bool 值 'true' ?

标签 android kotlin android-room

我想要一份用户保存的帐户列表,但应该有一个 Activity 帐户,因此在 Android 房间数据库中应该有一个标记为 isActive=true 的帐户。

这可能吗?我唯一能找到的是 Android Room 将 bool 值保存为 1(真)或 0(假)。

最佳答案

另一种可能性是将 Activity 帐户的 ID 或名称保存到共享首选项中。这样您将只有一个值来检查以找出哪个帐户处于 Activity 状态。并且您将节省许多检查数据库中哪个帐户处于 Activity 状态或在更改 Activity 帐户时更新所有条目的查询。

关于你的问题。我认为重要的是要考虑您打算如何使用此 boolean 值以及何时以及在何种情况下应查询它。您真的应该问问自己,您的实体类具有此字段并且“知道”其状态是否处于 Activity 状态是否对您的应用程序有益。在查询时,Room 将 SQLite 数据映射到您指定的实体类。事实上,您只是使用这个运行时对象来处理数据。就个人而言,我觉得从逻辑上讲,实体本身不知道它是 Activity 的更有意义。但是处理/管理您的帐户实体的东西。 从这个角度来看,您要问的是:每当一个帐户被声明为 Activity 时,让所有其他帐户(数据)知道它们不活动。 您提到这些帐户属于一个用户。那么这个用户有自己的实体吗?如果是,那么您可以将帐户引用存储在那里吗?

关于android - 是否可以确保 Android Room 数据库中只有一行包含 bool 值 'true' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63702515/

相关文章:

java - Android 绘图链接失败

android - 在 achartengine 中使用字符串代替 double /长折线图

android - 使用 setContentView 时,我看到系统墙纸一秒钟

android - 带有透明文本的 Canvas

android - Kotlin 错误 : Dagger does not support injection into private fields

android-studio - 没有配置 Koin 上下文。请使用 startKoin 或 koinApplication DSL

android - Kotlin中带有对象的列表的深拷贝

database - 将图像保存在房间数据库中

java - Viewmodel 不从 Android Room 更新数据,但成功插入其中

java - 如何使用存储库和 View 模型更新房间数据库中的字段