【发布时间】:2018-05-30 17:04:46
【问题描述】:
@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);
}
我的目标是来自一个 ids 列表,如果项目 id 属于 ids 列表,我想将所有项目的字段 saved 更新为 true,否则为 false。
为什么第二个查询会产生编译错误?
这是正确的方法吗?
【问题讨论】:
-
试着把括号括起来:
NOT IN (:itemsIds)
标签: android sql android-room android-architecture-components