Не удалять список объектов по предложению «в» - PullRequest
0 голосов
/ 27 ноября 2018

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 торговца не удаляются из Царства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...