我正在嘗試更新我的RelamObject(本例中是RealmCase)中的一個屬性。我已經嘗試了下面的代碼,它看起來像我的Realm中沒有更新,雖然我在RealmPatientInfo表中看到了一個新對象,但是我的RealmCase沒有創建任何關係。在Realm中執行更新時出錯
RealmCase realmCase = new RealmCase();
realmCase.setId(getId());
realmCase.setPatientInfo(new RealmPatientInfo(patientInfo));
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealmOrUpdate(realmCase);
realm.commitTransaction();
realm.close();
我也嘗試了以下,但得到一個異常,說價值不是由領域管理。
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
RealmQuery<RealmCase> query = realm.where(RealmCase.class);
RealmCase persistedCase = query.findFirst();
persistedCase.setPatientInfo(new RealmPatientInfo(patientInfo));
realm.copyToRealmOrUpdate(realmCase);
realm.commitTransaction();
realm.close();
我也想刪除舊patientInfo對象(參考和在RealmPatientInfo表中的條目),下面是我在這個嘗試,儘管從我之前錯誤使我從測試的一部分。
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
RealmQuery<RealmCase> query = realm.where(RealmCase.class);
RealmCase persistedCase = query.findFirst();
if(persistedCase.getPatientInfo() != null) {
persistedCase.getPatientInfo().removeFromRealm();
persistedCase.setPatientInfo(null);
}
persistedCase.setPatientInfo(new RealmPatientInfo(patientInfo));
realm.copyToRealmOrUpdate(realmCase);
realm.commitTransaction();
realm.close();
任何意見是非常感謝。
您的'新的RealmPatientInfo(patientInfo)'不是由Realm管理的,必須爲您管理,以便將其設置爲關係的其他成員。 – EpicPandaForce