领域以有效方式删除孤立对象

问题描述 投票:0回答:1

我有一个BeaconBase类,其中包含BeaconData列表。

public class BeaconBase extends RealmObject {

    @PrimaryKey
    private Integer checkInID;

    @SerializedName("beacons")
    @Expose
    private RealmList<BeaconData> beacons;
}

public class BeaconData extends RealmObject {

    @SerializedName("scanId")
    @Expose
    private String scanId;

    @SerializedName("distance")
    @Expose
    private String distance;

}

BeaconData通常会很大。每小时可能大约有100000行。删除相关的BeaconBase记录时,如何有效删除BeaconData?

我仅在BeaconBase中具有主键。

因此,当我删除BeaconBase记录时,成千上万个BeaconData记录被孤立了。我如何有效处理这种情况?

android database realm realm-mobile-platform realm-list
1个回答
0
投票
try(Realm r = Realm.getDefaultInstance)) {
    r.executeTransaction((realm) -> {
        RealmResults<BeaconBase> beaconsToDelete = realm.where(BeaconBase.class)./*query here*/.findAll();
        for(int i = beaconsToDelete.size() - 1; i >= 0; i--) {
            BeaconBase beaconBase = beaconsToDelete.get(i);
            beaconBase.getBeacons().deleteAllFromRealm();
            beaconBase.deleteFromRealm();
        }
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.