从RealmList中删除RealmObject

时间:2016-10-13 07:59:33

标签: android realm realm-list

我有一个名为RealmObject的{​​{1}},A包含在RealmList RealmObjects B and C中。 BC都有many to many个关系。

如何从A中的RealmList中移除B,但保持与C的关系(即它仍应位于Cs RealmList)?

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

1 个答案:

答案 0 :(得分: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)可靠地协同工作。