让我们说我有一个看起来像这样的领域对象结构 -
public class Person extends RealmObject {
@PrimaryKey
private int id;
private String name;
private List<Pet> pets
// Setters, getters...
}
public class Pet extends RealmObject {
private String name;
private MedicalRecord record;
// Setters, getters...
}
public class MedicalRecord extends RealmObject {
private String something;
private String somethingElse;
// Setters, getters...
}
现在我收到了一个带有现有id(主键)的新Person对象,我想更新此人。 所以我做了这样的事情 -
realm.beginTransaction();
realm.copyToRealmOrUpdate(person);
realm.commitTransaction();
麻烦的是这个人的宠物清单(以及宠物的医疗记录)仍在数据库中。不再与这个人联系,但仍然存在。
我试图这样做 -
Person existingPerson = realm.where(Person .class).equalTo("id", ID).findFirst();
existingPerson.getPets().clear();
但那里没有成功。如何删除realmObjects的子对象?
另外,有没有办法为realm-object定义一个策略,以便在没有引用它时它会自行删除(它没有链接到任何父对象)?
答案 0 :(得分:1)
现在你可以了,方法从上次提交重命名为businessTypeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
businessTypeObj = clubsList.get(position);
if (!selectedBusinessTypeList.contains(businessTypeObj)) {
selectedBusinessTypeList.add(businessTypeObj);
}
}
});