在 SQLite 房间中捕获 return 批量插入的值

Catch return value of bulk insert in SQLite room

假设我有以下 insertAll 函数:

@Insert
void insertDogs(List<Dog> dogs);

public long[] insertDogs(List<Dog> dogs) {
    return appDatabase.dogDao().insertDogs(dogs)
            .subscribeOn(Schedulers.io()) //causes Cannot resolve method 'subscribeOn(io.reactivex.Scheduler)'
            .observeOn(AndroidSchedulers.mainThread());
}

批量插入的正确 return 值应该是多少? 如果我想接收新创建的狗的 id,我会收到上述错误。

仅仅将 try catch 放在 insertDogs 函数之外就足够了吗,因为 subscribeOn 不能像批量插入那样工作。

尝试使用:-

@Insert
long[] insertDogs(List<Dog> dogs);