代码之家  ›  专栏  ›  技术社区  ›  Andrew Lam

android room throws错误:删除方法必须返回void或返回int(已删除行数)

  •  2
  • Andrew Lam  · 技术社区  · 7 年前

    我用的是安卓房间和RxJava

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

    我需要从参数化删除方法中得到完整的,我认为这个特性是从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).

    1 回复  |  直到 7 年前
        1
  •  2
  •   Martin Zeitler    7 年前

    错误消息试图告诉您:

    具有 @Query ,您必须更改返回的数据类型 Completable int void .

    这个 可完成的 需要订阅另一个方法,该方法运行 Dao :

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

    或使用 @Delete 注释,如@commonsware建议的那样(在这种情况下,如广告所示)。

    推荐文章