Android Room @Delete 带参数

新手上路,请多包涵

我知道我不能在查询中使用 DELETE (顺便说一句,这很遗憾),我会收到以下错误:

 <i>Error:error: Observable query return type (LiveData, Flowable etc) can only be used with SELECT queries that directly or indirectly (via @Relation, for example) access at least one table.</i>

但是我不能使用 @Delete(WHERE... xxx) 那么如何通过参数删除特定行呢?

原文由 Jack 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

房间的美妙之处在于,我们玩弄物体。根据要求,您可以用于 kotlin:

 @Delete
fun delete(model: LanguageModel)

对于 Java:

 @Delete
void delete(LanguageModel model)

它将删除存储在数据库中的具有相同值的确切对象。 LanguageModel 是我的模型类,它运行良好。

原文由 Awais 发布,翻译遵循 CC BY-SA 3.0 许可协议

实际上,您可以使用 @Query 执行删除。

 @Query("DELETE FROM users WHERE user_id = :userId")
abstract void deleteByUserId(long userId);

查询 javadoc 中提取:

UPDATE 或 DELETE 查询可以返回 void 或 int。如果是 int,则值为受此查询影响的行数。

原文由 Maragues 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题