我正在将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
更改为int
或void
。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/