【发布时间】:2019-08-13 07:37:24
【问题描述】:
我的应用程序有两个单独的表,一个称为用户,另一个称为密码。
用户:
@Entity(tableName = "users")
public class Users {
// some setters and getters here
}
密码:
@Entity(tableName = "passwords")
public class Passwords {
// some setters and getters here
}
这就是我访问数据库的方式:
usersdb = Room.databaseBuilder(this, Users.class,"mymaindb")
.allowMainThreadQueries()
.build();
// Then later in some other activity when I need to use passwords table
passwords = Room.databaseBuilder(this, passwords.class,"mymaindb")
.allowMainThreadQueries()
.build();
我遇到的问题是,在全新安装后,当我访问密码时,我无法访问用户,反之亦然。
我收到以下错误:
原因:java.lang.IllegalStateException: Room 无法验证 数据的完整性。看起来您已更改架构但忘记更新 版本号。您可以通过增加版本来简单地解决这个问题 号码。
但是当我尝试使用两个单独的数据库(如 passwords_db 和 users_db 而不是 mymaindb)时,它完全可以正常工作。
那么有没有一种方法可以在一个数据库下拥有多个表?如果是这样,那我做错了什么?提前致谢!
【问题讨论】:
-
您获得了一个包含一个表的数据库版本。然后你更新它,Room 要求你增加数据库的版本。是这样吗? Room 正在尝试帮助您“Room 无法验证数据完整性。您似乎更改了架构但忘记更新版本号。”.
标签: java android android-room