複製我有一個一對多的關係,在境界只有有效的管理對象可以從境界
public class BayEntity extends RealmObject implements RealmModel {
@PrimaryKey
private int id;
private String title;
}
public class TermEntity extends RealmObject implements RealmModel {
@PrimaryKey
private String termId;
private String name;
private RealmList<BayEntity> bayList;
public void updateBayList(ArrayList<BayEntity> bayList) {
if(CollectionUtility.isEmptyOrNull(this.bayList))
this.bayList = new RealmList();
this.bayList.addAll(bayList);
realm.beginTransaction();
realm.copyToRealm(this.bayList);
realm.insertOrUpdate(this); //update current instance
realm.commitTransaction();
}
public ArrayList<BayEntity> getSimpleList() {
if(CollectionUtility.isEmptyOrNull(bayList))
return new ArrayList<>();
return (ArrayList<BayEntity>) realm.copyFromRealm(bayList);
}
}
我得到含baylist所有TermEntity
對象爲:
public RealmResults<TermEntity> getTerms() {
return realm.where(TermEntity.class).findAll();
}
我能保存併成功檢索bayList
。當我嘗試將其轉換爲Arraylist
的方法getSimpleList()
,我得到異常:
java.lang.IllegalArgumentException異常:只有有效的管理對象可以是 從境界複製。
我不明白如何將對象從域中保存和檢索時可以不受管理。請糾正我。謝謝。
謝謝你指出我的代碼中的錯誤。你能請告訴我更新bayList的正確方法嗎?我想添加項目到已經存在的列表中。謝謝 – NightFury
此外,realm是一個來自單例類的實例,單獨管理。爲了簡單起見,我在這裏提到了這個。 – NightFury