Search code examples
androidkotlinrealm

How to insert object RealmList with copyToRealm


I try to insert realmList object to realm database

Model Data Class

open class Data : RealmObject() {

    @SerializedName("Settings")
    var settings: Settings? = null

    @SerializedName("Item")
    var items: RealmList<Items>? = null

}


fun insert(data: Data) {
        mRealm.executeTransactionAsync(
                Realm.Transaction { realm ->
                    val mData = realm.createObject(Data::class.java)
                    mData.settings = data.settings
                },
                Realm.Transaction.OnSuccess {
                    Log.e("setting", "success")
                }
        )
}

but it's error value is not a valid managed object. Then I found solution from this link https://github.com/realm/realm-java/issues/5238

fun insert(data: Data) {
        mRealm.executeTransactionAsync(
                Realm.Transaction { realm ->
                    val mData = realm.createObject(Data::class.java)
                    mData.settings = realm.copyToRealm(data.settings)
                },
                Realm.Transaction.OnSuccess {
                    Log.e("setting", "success")
                }
        )
}

When I try to insert RealmList in this solution is not work. Please help thank a lot.

val mData = realm.createObject(Data::class.java)
mData.settings = realm.copyToRealm(data.settings) //setting is common object
mData.item = realm.copyToRealm(data.item)         //item is RealmList

Solution

  • Finally I found solution. Thank mr.developer

    realm.copyToRealmOrUpdate(data)