更新一列房间中的项目列表

Usm*_*ana 1 sqlite android android-room

我想针对表中的项目/行列表更新特定列。一种方法是对update方法应用循环,但是有什么方法可以传递项目列表并为所有列更新该列,而不是循环进行?

道方法:

   @Query("UPDATE items SET is_processing=1 WHERE item_id=:id")
    public abstract void updateProcessingStatus(String id);
Run Code Online (Sandbox Code Playgroud)

当前更新代码:

public void updateStatusOfList(List<Item> items)
{

   for(Item item:items)
   myDao.updateProcessingStatus(item);

}
Run Code Online (Sandbox Code Playgroud)

liv*_*ove 5

只需将您的列表作为变量传递给查询:

@Query("UPDATE items SET is_processing=1 WHERE item_id in (:items) ")
public abstract void updateProcessingStatus(List<String> items);
Run Code Online (Sandbox Code Playgroud)

您可能需要首先从“项目”列表中创建一个字符串列表。

  • 如果我想更新这些行的同一列的不同值怎么办? (2认同)