我想重用曾经从数据库中删除的领域对象。

可以说,我从数据库中删除了一个对象。

Story story = realm.where(Story.class).equalTo("id","id").findFirst();

story.deleteFromRealm();


现在,我要合并已删除的对象,并希望使用其他“ id”(主键)重用它,而不是每次都创建一个新对象。

当前的实现不允许我这样做,并引发异常。

我的问题是,还有另一种方法可以实现相同的目标。
如果不是,应该将此功能添加到领域中。

所请求的引发异常的代码

Story story1 = StoryObjPool.getInstance().getStory();
            if(story1 != null){
                story1.setId(1234);
            }


例外

java.lang.IllegalStateException: This Realm instance has already been closed, making it unusable.


at io.realm.BaseRealm.checkIfValid(BaseRealm.java:348)
at io.realm.StoryRealmProxy.realmSet$id(StoryRealmProxy.java:177)
at com.hn.nishant.nvhn.model.Story.setId(Story.java:98)

最佳答案

Story story = realm.where(Story.class).equalTo("id","id").findFirst();
// create standalone object that not reference to realm
Story stoyStandalone = realm.copyFromRealm(story);

story.deleteFromRealm();

// save standalone object to realm
stoyStandalone.setId(...);
realm.copyToRealm(stoyStandalone);

关于android - 重用从 Realm 数据库中删除的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43106523/

10-11 22:54
查看更多