我想重用曾经从数据库中删除的领域对象。
可以说,我从数据库中删除了一个对象。
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/