Android 如何在具有不同对象类型的房间中创建可流动事务?

Android 如何在具有不同对象类型的房间中创建可流动事务?,android,transactions,rx-java,rx-java2,android-room,Android,Transactions,Rx Java,Rx Java2,Android Room,我想为我的应用程序实现搜索,因此我想根据两个表的名称同时查询它们,并希望在发现同一个表中存在相关名称时返回结果,所以我所做的是创建了一个Dao并编写了以下代码 @Dao abstract class SearchDao { @Query("SELECT * FROM CHANNELS WHERE name LIKE :name") abstract Flowable<List<Channel>>

我想为我的应用程序实现搜索,因此我想根据两个表的名称同时查询它们,并希望在发现同一个表中存在相关名称时返回结果,所以我所做的是创建了一个Dao并编写了以下代码

    @Dao
        abstract class SearchDao {


            @Query("SELECT * FROM CHANNELS WHERE name LIKE :name")
            abstract Flowable<List<Channel>> getAllChannels(String name);

            @Query("SELECT * FROM MOVIES channels WHERE name LIKE :name")
            abstract Flowable<List<Movie>> getAllMovies(String name);

   }
@Dao
抽象类SearchDao{
@查询(“从频道中选择*,如:name”)
抽象可流动GetAllChannel(字符串名称);
@查询(“从电影频道中选择*名称,如:name”)
抽象流式getAllMovies(字符串名称);
}

所以我想到的是创建一个事务,这样它就可以完成所有的工作,但是我在这里被困在如何创建事务上,请帮助我。

尝试一下你可以用getAllMovies()做的同样的事情

roomDb.yourDao().getAllChannel(名称)
.observeOn(AndroidSchedulers.mainThread())
.订阅(新消费者){
@凌驾
公共无效接受(列表通道){
//ShowAllChannel(频道)
}
});

我想创建一个事务这是调用db的一般方法,而不是两个单独的调用,我需要将其作为一个事务进行调用,以便两个查询同时执行并删除bloatware代码您不能在表之间进行连接,并避免调用两个请求?
roomDb.yourDao().getAllChannels(name)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<List<Channel>>() {
   @Override
   public void accept(List<Channel> channel) {
        // showAllChannels(channel) 
}

});