Миграция области с новым иностранным полем

Я создал новый объект области (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: Realm не поддерживает этот тип поля: B

Как я могу создать это новое поле в A со ссылкой на B в моем файле миграции?


person Victor Manuel Pineda Murcia    schedule 04.05.2017    source источник


Ответы (1)


Согласно документации, чтобы добавить поле ссылки, вам нужно использовать realmObjectSchema.addRealmObjectField() вместо addField().

if (!schemaA.hasField("referenceToB")) {
    RealmObjectSchema bSchema = schema.get("B");
    schemaA.addRealmObjectField("referenceToB", bSchema);
}
person EpicPandaForce    schedule 04.05.2017
comment
Большое спасибо. - person Victor Manuel Pineda Murcia; 08.05.2017