假设我有一个领域对象的结构,看起来像这样-
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...
}
现在我收到了一个新的Person对象,它有一个现有的id(主键),我想更新这个人。所以我做了这样的事情-
realm.beginTransaction();
realm.copyToRealmOrUpdate(person);
realm.commitTransaction();
问题是,这个人的宠物名单(以及宠物的医疗记录)仍然在数据库中。不再与此人联系,但仍然存在。
我试过这样做-
Person existingPerson = realm.where(Person .class).equalTo("id", ID).findFirst();
existingPerson.getPets().clear();
但没有成功。如何删除realmObjects的子对象?
此外,是否有一种方法可以为领域对象定义策略,以便在没有引用(它没有链接到任何父对象)时将其自身删除?
现在您可以了,并且方法已从上次提交重命名为realmList.deleteAllFromRealm()