Kontext: isolateLocation und Suszeptibilitäten (1-viele) haben eine eins zu viele Beziehung sowie Droge und Empfindlichkeiten (1-viele). Alle sind RealmObjects und IsolateLocation sowie Drogen enthält RealmList der Suszeptibilitäten. Eine Empfindlichkeit wird für alle Arzneimittel in jedem Isolat erstellt. Diese Suszeptibilität wird dann zur entsprechenden IsolatLocation-Suszeptibilitätsliste und zur Liste der Arzneimittelanfälligkeit hinzugefügt.Zeile automatisch in Android RealmDB nach dem Hinzufügen neuer Eintrag in einer verwandten Tabelle gelöscht?
Problem: Das erste Susceptibility Objekt ist, sowohl die Modelle (Drug & IsolateLocation), aber die nächsten Susceptibility in korrekt Listen hinzugefügt, die korrekt auf das Medikament Modell hinzugefügt wird erzeugt, unmittelbar nachdem es an die Wirkstoffansprechverhaltens Liste hinzugefügt , der vorherige Eintrag in der IsolateLocation Suszeptibilitätsliste wird gelöscht. So am Ende ist Wirkstoffansprechverhaltens korrekt mit mehreren Suszeptibilitäten aber IsolateLocation Empfänglichkeit Liste hat nur 1.
Rohdaten: http://imgur.com/a/iTPY8
Code:
for (Drug drug : drugList){
Susceptibility susceptibility = new Susceptibility();
susceptibility.setId(UUID.randomUUID().toString());
susceptibility.setDrug(drug);
susceptibility.setReference(parsedCsv[drug.getId()+1]);
susceptibility.setSusceptibilityValue(parsedCsv[drug.getId()]);
susceptibility.setIsolateLocation(isolateLocation);
addSusceptibilityToRealm(isolateLocation, drug, susceptibility);
}
private void addSusceptibilityToRealm(IsolateLocation isolateLocation, Drug drug, Susceptibility susceptibility) {
realm.beginTransaction();
Drug drugEntry = realm.where(Drug.class).equalTo("id", drug.getId()).findFirst();
drugEntry.getSusceptibilities().add(susceptibility);
IsolateLocation isolateLocationEntry = realm.where(IsolateLocation.class).equalTo("id", isolateLocation.getId()).findFirst();
isolateLocationEntry.getSusceptibilities().add(susceptibility);
realm.commitTransaction();
}
Sie sollten die Elemente in 1 Transaktion hinzufügen, nicht N Transaktionen pro N-Element – EpicPandaForce