Android Studio 3.2
public class Profile extend RealmObject {
@PrimaryKey
private long id;
}
我有List<Profile> profileList;
我在此列表中有5个id = 1, 2, ...
很好。
现在我需要使用id=1 ,id=3, id=5
因此删除后,列表中只能包含id=2 and id=4
的2个配置文件
我该怎么做?
P.S。 ID列表是一个动态列表。今天有3个ID,明天有2个ID。
答案 0 :(得分:2)
考虑到对此的直接支持,这实际上很简单...
r.executeTransaction((realm) -> {
realm.where(Profile.class).in("id", new Long[] { 1L, 3L, 5L }).findAll().deleteAllFromRealm();
});
请参见https://realm.io/docs/java/latest/api/io/realm/RealmQuery.html#in-java.lang.String-java.lang.Long:A-
答案 1 :(得分:0)
根据Realm文档,您需要搜索所有可能的匹配项
// obtain the results of a query
final RealmResults<Profile> results = realm.where(Profile.class).equalTo("profile.id", 1).where().equalTo("profile.id", 3).where().equalTo("profile.id", 5).findAll();
// All changes to data must happen in a transaction
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
// remove single match
results.deleteFirstFromRealm();
results.deleteLastFromRealm();
// remove a single object
Dog dog = results.get(5);
dog.deleteFromRealm();
// Delete all matches
results.deleteAllFromRealm();
}
});