2017-05-04 4 views
0

新しいレルムオブジェクト(B)を作成し、新しいオブジェクトBを参照する既存のレルムオブジェクト(A)の新しいフィールドを作成しました。マイグレーションファイルでは、新しい外部フィールドを使用したレルムの移行

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

は、どのように私は私の中にBへの参照では、この新しいフィールドを作成することができます移行ファイル?

答えて

1

ドキュメントごとに、リンクフィールドを追加するには、addField()の代わりにrealmObjectSchema.addRealmObjectField()を使用する必要があります。

if (!schemaA.hasField("referenceToB")) { 
    RealmObjectSchema bSchema = schema.get("B"); 
    schemaA.addRealmObjectField("referenceToB", bSchema); 
} 
+0

ありがとうございました。 –