Kotlinを使用していて、に新しいフィールドを追加したいのですがRealmObject
、そのフィールドはnull許容にすることができます。移行の内容は次のとおりです。
val schema = realm.schema.get(ZOLA_NOTIFICATION)
if (!(schema?.hasField("agentId") ?: false)) {
schema.addField("agentId", Long::class.java)
}
ただし、この移行を実行するとエラーメッセージが表示されます。
Non-fatal Exception: io.realm.exceptions.RealmMigrationNeededException
Field 'agentId' does not support null values in the existing Realm file. Either set @Required, use the primitive type for field 'agentId' or migrate using RealmObjectSchema.setNullable().
Long::class.java
移行コードでnull許容型であることを指定するにはどうすればよいですか?
残念ながら、
Long::class.java // kotlin
と同等です
long.class // java
Long::class.javaPrimitiveType // kotlin
しかし、レルムでnull許容のLongに追加する必要があるのは
Long.class // java
だからあなたは使う必要があります
Long::class.javaObjectType // Long.class
移行では、RealmObjectSchema.setNullable(String field, boolean nullable)
メソッドを使用して必須フィールドをnull許容フィールドに変えることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加