Catendra
Catendra

Reputation: 3

Android: How to create empty realm object?

I tried to create an empty realm object by following code:

val realm = Realm.getDefaultInstance()
var arr = ArrayList<SildayAlarm>()
val myModel: MyModel? = realm.createObject(MyModel::class.java)

MyModel.kt

@RealmClass
open class MyModel(
    var code: Int? = 0
): RealmObject()

But I got the error like this :

java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction. in /Users/cm/Realm/realm-java/realm/realm-library/src/main/cpp/io_realm_internal_OsObject.cpp line 336

Upvotes: 0

Views: 547

Answers (1)

DHAVAL A.
DHAVAL A.

Reputation: 2321

To create object with realm instance will perform transaction on realm Database.

So you should have to wrap that code inside transaction wrapper.

1)

val realm = Realm.getDefaultInstance()
realm.beginTransaction();   // To start realm transaction.
val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object
realm.commitTransaction();   // To complete realm transaction.

Or use realm's transaction method.

2)

val realm = Realm.getDefaultInstance()
realm.executeTransaction { realm ->
      val myModel: MyModel? = realm.createObject(MyModel::class.java) // Create a new object
}

Note:

All write operations on this newly created realm Object should perform under those realm transaction block.

Upvotes: 1

Related Questions