Как я могу использовать оператор SQL «НЕ В» с комнатой - PullRequest
0 голосов
/ 30 мая 2018
@Query("UPDATE items SET saved=:saved WHERE id IN :itemsIds") // works
abstract void method1(List<Long> itemsIds, boolean saved);

@Query("UPDATE items SET saved=:saved WHERE id NOT IN :itemsIds") // ERROR!!
abstract void method2(List<Long> itemsIds, boolean saved);

@Transaction
void updatePreferredItems(@NonNull List<Long> prefItems) {
    method1(prefItems, true);
    method2(prefItems, false);
}

Моя цель из списка идентификаторов. Я хотел бы обновить поле сохранено всех элементов до значения true, если идентификатор элемента принадлежит списку идентификаторов, в противном случае - значение false.

Почему второй запрос генерирует ошибку компиляции?

Это правильный подход?

1 Ответ

0 голосов
/ 30 мая 2018

Что происходит, когда вы делаете это:

@Query("UPDATE items SET saved=:saved WHERE NOT(id IN :itemsIds)") // ERROR??
abstract void method2(List<Long> itemsIds, boolean saved);
...