带新国外领域的领域迁移
Realm Migration with new foreign field
我创建了一个新的领域对象 (B),并在现有领域对象 (A) 中创建了一个新字段,它引用了新对象 B。在我的迁移文件中,我有这个:
if(!realm.getSchema().contains("B")) {
realm.getSchema().create("B").addField("name", String.class).addField("resId", int.class);
}
RealmObjectSchema schemaA = realm.getSchema().get("A");
if (!schemaA .hasField("referenceToB")) {
schemaA .addField("referenceToB", B.class);
}
它不起作用,我得到:java.lang.IllegalArgumentException:领域不支持此字段类型:B
如何在我的迁移文件中创建 A 中引用 B 的新字段?
根据文档,要添加 link 字段,您需要使用 realmObjectSchema.addRealmObjectField() 而不是 addField()
。
if (!schemaA.hasField("referenceToB")) {
RealmObjectSchema bSchema = schema.get("B");
schemaA.addRealmObjectField("referenceToB", bSchema);
}
我创建了一个新的领域对象 (B),并在现有领域对象 (A) 中创建了一个新字段,它引用了新对象 B。在我的迁移文件中,我有这个:
if(!realm.getSchema().contains("B")) {
realm.getSchema().create("B").addField("name", String.class).addField("resId", int.class);
}
RealmObjectSchema schemaA = realm.getSchema().get("A");
if (!schemaA .hasField("referenceToB")) {
schemaA .addField("referenceToB", B.class);
}
它不起作用,我得到:java.lang.IllegalArgumentException:领域不支持此字段类型:B
如何在我的迁移文件中创建 A 中引用 B 的新字段?
根据文档,要添加 link 字段,您需要使用 realmObjectSchema.addRealmObjectField() 而不是 addField()
。
if (!schemaA.hasField("referenceToB")) {
RealmObjectSchema bSchema = schema.get("B");
schemaA.addRealmObjectField("referenceToB", bSchema);
}