Wie nur NOT NULL-Werte beim Schreiben von Daten in Realm aktualisiert werden

8

Hel euch allen! Mein Szenario ist, dass ich einen Bildschirm mit einem Feed habe und jedes Feedelement mit seinen Details in einem Realm gespeichert ist. Für jedes dieser Elemente sind die Eigenschaften offset und feedPostedAt definiert. Das Problem tritt auf, wenn ein Benutzer auf ein Element klickt und die Details des Elements heruntergeladen werden, um aktuelle Daten bereitzustellen. Das heruntergeladene Detail enthält jedoch keine Eigenschaften offset und feedPostedAt. Daher wird beim Aktualisieren des Realms ( realm.copyOrUpdate () ) dieses Elements das alte Objekt mit den Eigenschaften offset und feedPostedAt überschrieben.

Gibt es eine Möglichkeit, dass Realm nur Werte aktualisiert, die definiert sind, und Eigenschaften mit NULL-Werten unverändert lassen?

Im Moment befasse ich mich mit diesem Problem so, dass ich die offset- und feedPostedAt-Eigenschaft manuell zurücksetze, aber das ist weder schön noch effektiv.

    
Jan Staněk 08.09.2015, 10:54
quelle

1 Antwort

1

Es könnte ein bisschen spät sein, aber das ist es, was ich benutze. Die Methode aktualisiert das Objekt base mit den nicht standardmäßigen Eigenschaften von update object. Dann wird die Methode Realm#insertOrUpdate verwendet, um die Realm-Datenbank zu aktualisieren.

%Vor%
  • Es verwendet Reflektion, um auf alle Eigenschaften zuzugreifen.
  • Beide Objekte müssen vom Bereich getrennt sein.
  • Das Objektmodell sollte @PrimaryKey annotierte Eigenschaft in der Reihenfolge Realm#insertOrUpdate haben, um seine Aufgabe zu erledigen. Andernfalls erfordert die Methode ein wenig Tuning.
guness 15.01.2017 13:28
quelle

Tags und Links