如何用子关系删除领域对象?

时间:2016-11-04 15:29:46

标签: android realm

我有一个与其他对象有很多关系的大对象,这些对象也与其他对象有关系。因此,当我删除根对象时,我发现只有父对象被删除而其所有关系都没有,是否有办法删除同一事务中的整个树?

1 个答案:

答案 0 :(得分:12)

Realm目前不支持cascading delete。您可以为该功能投票there。在目前的情况下,似乎你需要一个接一个地手动完成。

realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        RootObj root = realm.where(RootObj.class)
                            .equalTo(RootObjFields.ID, rootId)
                            .findFirst();
        if(root != null) {
            if(root.getChild() != null) {
               root.getChild().deleteFromRealm();
            }
            root.deleteFromRealm();
        }
    }
});