Android Realm.io - 删除子对象

时间:2016-01-10 15:35:43

标签: android realm

让我们说我有一个看起来像这样的领域对象结构 -

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定义一个策略,以便在没有引用它时它会自行删除(它没有链接到任何父对象)?

1 个答案:

答案 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); } } });