带参数的安卓房间@Delete

2022-08-31 09:25:42

我知道我不能在查询中使用(顺便说一句,这很遗憾),我会得到以下错误: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)


答案 1

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

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

Query javadoc 中提取

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


答案 2

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

@Delete
fun delete(model: LanguageModel)

对于 Java:

@Delete
void delete(LanguageModel model)

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


推荐