根据我的在线阅读,如果返回类型为flowable或LiveData类型,则Dao方法将异步执行,否则将同步执行。是还是否?
我的问题是这样,因为当我希望它是同步的时,我似乎正在得到异步行为。是同步还是异步完成?
@Query("DELETE FROM Tag")
public abstract void deleteTags();
我目前在我的Dao中有一个@Transaction注释方法,该方法调用了与上面类似的10种不同方法,但是我的质量检查小组通知我,某些表中有一些不良数据...意味着这些表中有旧数据。在@Transaction方法到达其回调之前应该已经删除了。
这仅在较大的数据集下发生...这使我相信我的删除事务:
@Transaction
public void deleteTables()
可能正在报告事务完成之前所有删除查询都已完成。我在交易中的所有查询均返回void。
我做错了什么,导致它异步了吗?
这是我的调用方法:
executorService.execute(() -> {
DAO.deleteTables();
callback.onComplete(Resource.success()); <--I think this is hit prematurely.
});