首页 > 解决方案 > 将非领域对象存储到领域数据库中

问题描述

我有一个第三方库,它创建了很多数据模型来捕获对象中的数据。例如,要存储他们有Record等级的记录,要存储他们有等级的葡萄糖读数Diabetes

现在,由于这些类是库的一部分,因此它们声明如下

public class Record implements Serializable {        
}

public class Diabetes extends Record implements Serializable {
}

我想使用这些类并将其存储到领域中。由于领域具有必须从 扩展的约束RealmObject,我不知道如何存储在库声明的类中捕获的数据。

Diabetes由于没有扩展,我无法执行以下操作RealmObject

Diabetes diabetes = new Diabetes() ;

 realm.executeTransaction((realm) -> {
            realm.insert(diabetes);
 });

那么无论如何将非领域对象存储到领域数据库中吗?如果我通过扩展在我的应用程序中重新创建相同的类,RealmObject那么我应该如何快速将非领域对象关闭为领域对象?

标签: androidrealm

解决方案


为Record 创建一个新类,比如RecordEntry 并使其扩展RealmObject。

在 RecordEntry 中创建一个静态函数,该函数接受 Record 类作为参数,然后将其转换为新的 RecordEntry 对象。

例子

static RecordEntry createRecordEntry(Record record) {
    return new RecordEntry(record.id, record.title);
}

推荐阅读