我正在将Android Room与RxJava一起使用

dependencies {
    implementation 'androidx.room:room-rxjava2:2.1.0-alpha02'
}

我需要从参数化删除方法中获取Completable,我认为此功能是从2.1.0版本开始添加的?前任。
  @Query("DELETE FROM message_table WHERE uid = :id")
  Completable delete(String id);

  @Query("DELETE FROM message_table")
  Completable deleteAll();

仍会引发错误:Deletion methods must either return void or return int (the number of deleted rows).

最佳答案

由于错误消息试图告诉:

使用@Query,您必须将返回的数据类型从Completable更改为intvoid
Completable将需要订阅另一种方法,该方法运行Dao的方法:

Completable
  .fromAction(aMethodWhichCallsDao)
  .subscribeOn(Schedulers.single())
  .subscribe();

或按照@Commonsware的建议使用@Delete注释(以防广告宣传)。

关于android - Android Room引发错误: Deletion methods must either return void or return int (the number of deleted rows),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53998936/

10-08 23:36