2

我创建了一个新领域对象 (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?

4

1 回答 1

7

根据文档,要添加链接字段,您需要使用realmObjectSchema.addRealmObjectField()而不是addField().

if (!schemaA.hasField("referenceToB")) {
    RealmObjectSchema bSchema = schema.get("B");
    schemaA.addRealmObjectField("referenceToB", bSchema);
}
于 2017-05-04T12:08:18.153 回答