1

我有一个RealmObject叫,说A是包含在一个RealmListRealmObjects B and CB并且C两者都有many to many关系。

我如何ARealmListin 中删除B但保持它的关系C(即它应该仍然在Cs RealmList)?

简而言之,我需要知道如何在不影响同一个对象的其他关系的情况下从 RealmList 中删除一个对象(而不是从 Realm 中删除它)。

4

1 回答 1

1

就像任何列表一样,真的。

realm.executeTransaction(new Realm.Transaction() {
    B b = realm.where(B.class).equalTo(BFields.ID, bId).findFirst();
    Iterator<A> iterator = b.getRealmList().iterator();
    while(iterator.hasNext()) {
        A a = iterator.next();
        if(a.getId().equals(idToDelete)) {
            iterator.remove(); // removes from realm list, but not from Realm
            break;
        }
    }
});

但是我认为,如果您重新定义hashCode()equals()基于主键工作,那么它也应该可以可靠地工作remove(Object object)

于 2016-10-13T08:03:18.923 回答