如何使用 realm.io (Java/Android) 递归删除记录?

How can I recursively delete records using realm.io (Java/Android)?

如何使用 realm.io 递归删除具有一对多关系的记录?

例如我有以下嵌套对象:

public class RealmUnit extends RealmObject {
    private int id;
    private RealmList<RealmChapter> chapters;
    public RealmUnit() {
        chapters = new RealmList<>();
}

public class RealmChapter extends RealmObject {
    private int id;
    private RealmList<RealmChapterGoal> chapterGoals;
    public RealmChapter() {
        chapterGoals = new RealmList<>();
    }
}

public class RealmChapterGoal extends RealmObject {
    private String type;
    private String text;
    public RealmChapterGoal() {}
}

目前 Realm 没有级联删除,但它在我们的 TODO 上并在此处跟踪:https://github.com/realm/realm-java/issues/1104

所以现在您唯一的选择很遗憾是手动自下而上的方法。

for(RealmChapter chapter: realmUnit.getChapters) {
 chapter.getChapterGoals().clear();
}

realmUnit.getChapters().deleteAllFromRealm();
realmUnit.deleteFromRealm();

这里还描述了一些其他解决方法: https://github.com/realm/realm-java/issues/2717