Android Studio 3.2, Realm 5.8.0
В Realm у меня есть 3 торговца с id=1,2,3
.
Теперь я удаляю всех торговцев с ids= 1,2
Для этого я использую предложение "in
".
Здесь фрагмент:
public static void updateList(final List<Merchant> thatMerchantsList) {
Realm realm = Realm.getDefaultInstance();
try {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Long[] idsToDeleteArray = new
Long[itemNotExistInThatMerchants.size()];
for (int index = 0; index <
itemNotExistInThatMerchants.size(); index++) {
Merchant merchant =
itemNotExistInThatMerchants.get(index);
idsToDeleteArray[index] = merchant.getId();
}
RealmResults<Merchant> localMerchantsForDelete =
realm.where(Merchant.class).in(Merchant.ID,
idsToDeleteArray).findAll();
boolean isDelete =
localMerchantsForDelete.deleteAllFromRealm();
Debug.d(TAG, "updateMerchantList: idsToDeleteArray = " + Arrays.toString(idsToDeleteArray)
+ " -> localMerchantsForDelete_size = " + localMerchantsForDelete.size() + " -> isDelete = " + isDelete);
}
});
} finally {
realm.close();
Debug.d(TAG, "updateMerchantList: finish");
}
}
В logcat вы можете увидеть:
idsToDeleteArray = [1, 2] -> localMerchantsForDelete_size = 0 -> isDelete = true
Как вы можете видеть localMerchantsForDelete_size = 0
.Почему?
В результате 2 торговца не удаляются из Царства.