【发布时间】:2017-12-22 10:48:35
【问题描述】:
我想将 primitive 列表添加到现有模型,但出现异常。
注意:这都是 it Kotlin 完成的。
这是模型:
open class Foo(
@PrimaryKey var id: Int = 0
) : RealmObject()
现在我想添加以下字段:
var idList: RealmList<Int> = RealmList()
这可能是一个空列表,所以我用一个空白 RealmList 初始化它(它曾经用于非原始列表字段)。
我的迁移如下所示:
schema.get("Foo")
?.addRealmListField("idList", Int::class.java)
运行应用程序时,我得到一个RealmMigrationNeededException:
由于以下错误,需要迁移:
- 属性“Foo.idList”已成为可选。
我可以通过将@Required 添加到模型中的新字段来解决此问题,但我不确定该列表是否仍然可以为空/null。
将原始列表添加到模型的正确方法是什么?对此的正确迁移是什么?
【问题讨论】:
-
你使用什么版本的 Realm?
-
您可以尝试
Int::class.javaPrimitiveType),尽管考虑到这是RealmList<Integer>,您可能只想添加@Required。这只是意味着这个 RealmList 不能包含null作为值。 -
javadoc 将更新github.com/realm/realm-java/pull/5646
标签: android kotlin realm realm-migration