我有一个RealmObject
叫,说A
是包含在一个RealmList
中RealmObjects B and C
。B
并且C
两者都有many to many
关系。
我如何A
从RealmList
in 中删除B
但保持它的关系C
(即它应该仍然在Cs RealmList
)?
简而言之,我需要知道如何在不影响同一个对象的其他关系的情况下从 RealmList 中删除一个对象(而不是从 Realm 中删除它)。
我有一个RealmObject
叫,说A
是包含在一个RealmList
中RealmObjects B and C
。B
并且C
两者都有many to many
关系。
我如何A
从RealmList
in 中删除B
但保持它的关系C
(即它应该仍然在Cs RealmList
)?
简而言之,我需要知道如何在不影响同一个对象的其他关系的情况下从 RealmList 中删除一个对象(而不是从 Realm 中删除它)。
就像任何列表一样,真的。
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)
。