如何使用 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
如何使用 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