2016-08-05 30 views
0

Ich habe ein Objekt Person und in dieser Person habe ich eine City Instanz. Wenn ich eine Stadt erstelle und sie auf eine Person setze, kann ich später die Stadt löschen, ohne die Person zuerst zu löschen oder sie auf null zu setzen.Wie verhindert man das Löschen eines Objekts, das von einem anderen Objekt in Realm referenziert wird?

Ist dies das erwartete Verhalten? Gibt es eine Möglichkeit, dies zu ändern, so dass es wie eine relationale Datenbank mit der "on delete action" funktionieren würde, wo Sie "do nothing", "set null" oder "cascade" einstellen können?

Antwort

1

Kaskadierende Löschvorgänge werden von Realm noch nicht unterstützt. Es gibt ein Problem, das hier verfolgt wird, sowie einige vorgeschlagene Problemumgehungen: https://github.com/realm/realm-java/issues/1104

Nur um auch hier eine Lösung zu haben. Fügen Sie Ihre eigene benutzerdefinierte "cascadeDelete" -Methode hinzu, die ungefähr so ​​aussieht:

public class Foo extends RealmObject { 
    public RealmList<Foo> list; 
    public String name; 

    public void cascadeDelete() { 
    list.deleteAllFromRealm(); // The cascade part 
    deleteFromRealm(); // delete this object 
    } 
}