【问题标题】:Deleting RealmObject from RealmList从 RealmList 中删除 RealmObject
【发布时间】:2016-10-13 07:59:32
【问题描述】:
我有一个名为 RealmObject 的 A,它包含在 RealmObjects B and C 中的 RealmList 中。 B 和 C 都有 many to many 关系。
如何从B 中的RealmList 中删除A,但保持它与C 的关系(即它仍应在Cs RealmList 中)?
简而言之,我需要知道如何在不影响同一个对象的其他关系的情况下从 RealmList 中删除一个对象(而不是从 Realm 中删除它)。
【问题讨论】:
标签:
android
realm
realm-list
【解决方案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) 一起工作。