【发布时间】:2019-03-13 02:02:33
【问题描述】:
我是 rxjava 和房间的新手,我刚刚阅读了一些教程,他们说:Single<Long> or Maybe<Long> — onSuccess 发出的值是插入项目的行 ID。
所以我正在尝试用这样的空间做一些事情,但我不知道在表中插入新行后如何获取行 id(autoGenerate id)。
Dao.class
@Insert(onConflict = OnConflictStrategy.REPLACE)
Single<Long> insert(User user);
Repository.class
public Single<Long> insertUser(User user) {
return userDao.insert(user);
}
viewmodel.class
saleRepository.insertUser(user).observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io()).subscribe(new SingleObserver<Long>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(Long aLong) {
}
@Override
public void onError(Throwable e) {
}
});
【问题讨论】:
-
获取行 id 仅在您的用户实体设计的上下文中才有意义。如果您有兴趣回答,请提供。
-
我想使用生成的 id 添加到其他表中的其他行(ForeignKey)
标签: rx-java2 android-room rx-android