android - ReActiveAndroid - 未找到引用的数据库信息

标签 android database orm android-sqlite activeandroid

我想用 ReActiveAndroid 替换旧的数据库代码但是所有操作都出错

如文档中所述,我有这些类:

数据库类

@Database(name = "MyDatabase", version = 1)
public class MyDatabase {
}

应用类

DatabaseConfig appDatabase = new DatabaseConfig.Builder(MyDatabase.class)
            .build();

ReActiveAndroid.init(new ReActiveConfig.Builder(this)
            .addDatabaseConfigs(appDatabase)
            .build());

模型类

@Table(database = MyDatabase.class)
public class User extends Model {
    ...
}

插入代码

User user = new User();
user.id = id;
user.name = name;
user.save();

我有这个错误:

java.lang.IllegalArgumentException: Database info referenced with table ir.hatamiarash.app.models.User not found

我是否遗漏了任何设置?

最佳答案

没错,但我选择 ReactiveAndroid 的原因是从 ActiveAndroid 迁移而来。 Realm 不使用 SQLite,这意味着迁移过程会更加复杂。

我找到了解决这个问题的方法:

DatabaseConfig appDatabase = new DatabaseConfig.Builder(AppDatabase.class) .addModelClasses(LogEntry.class) .addMigrations(AppDatabase.MIGRATION_16_17) 。 build ();

您必须调用 addModelClasses。还有一些文档有助于解决随后出现的错误:https://imangazalievm.gitbooks.io/reactiveandroid/migration-from-activeandroid.html

关于android - ReActiveAndroid - 未找到引用的数据库信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51124775/

相关文章:

c# - 使用C#比较本地数据库的两个表

grails - 网站基础结构– DBMS到浏览器层

android - shell 无法使用 > 和 >> 捕获文件中的输出

java - Android 开发人员工具的 SSL 验证选项

database - Cassandra 按位运算和运算符(&、或、非)

php - 使用 PHP 将数据插入数据库

python - 使用 Django 使用与 ORM 数据库相同的连接来查询 MySQL 数据库

mysql - 使用 SQLAlchemy 创建表后,如何向其中添加其他列?

android - 如何通知用户启用gpsprovider

android - 编码为 base64 keystore 文件