Android Realm.io-删除子对象



假设我有一个领域对象的结构,看起来像这样-

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()

最新更新