Właściwym sposobem utworzenia nowego RealmObject z istniejącym kluczem podstawowym jest użycie realm.createObject(EmailRealmModel.class, emailID)
metoda.
Pełny fragment kodu:
realm.beginTransaction();
EmailRealmModel email = realm.createObject(EmailRealmModel.class, emailID);
mailBoxRealmModel.getEmails().add(email);
realm.commitTransaction();
Lub, jeśli chcesz, aby aktualizacja była przechowywana w obiekcie realm przy użyciu jednej z instancji pamięci, powinieneś wywołać realm.copyToRealmOrUpdate(obj)
.
Przykład z dokumentacji:
// For create managed proxy, you should wrap EmailRealmModel object by call copyToRealmXXX
EmailRealmModel email = realm.copyToRealmOrUpdate(new EmailRealmModel(id));
mailBoxRealmModel.getEmails().add(email);