【发布时间】:2021-07-30 07:33:34
【问题描述】:
我有插入一行的查询
@Dao
public interface NoteDao {
@Insert
Long insert(Note note);
}
我正在使用 RxJava 在后台线程上执行查询:
public void insert(Note note) {
Single.fromCallable(() -> noteDao.insert(note))
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<Long>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onSuccess(@NonNull Long aLong) {
Log.d(TAG, "onSuccess: New row Id: " + aLong);
}
@Override
public void onError(@NonNull Throwable e) {
}
});
}
目前它成功返回了为插入的 DAO 新创建的主键。如何在不使用新行 ID 执行第二次查询的情况下返回整个插入的行?
在 postgresql 中我会这样做:
`INSERT INTO note_table(note_title, note_description) VALUES ($1, $2) RETURNING *`
不确定如何使用 Room 库进行操作
【问题讨论】:
标签: android rx-java android-room rx-java2 rx-android