我尝试在Android Room中附加数据库,如下所示:How to select from multiple databases in Android Room(How to attach databases)但是我在构建项目时出错:**错误:查询有问题:[SQLITE_ERROR] SQL错误或缺少数据库(没有这样的表:database.table)**错误问题
@Query("select t.id as tid from mydatabase.mytable t")
public List<MyPojo> getMyTableIds();
当我添加@SkipQueryVerification时,错误更改为:错误:不知道如何将Cursor转换为该方法的返回类型。
当我从Query中删除“mydatabase.”时,错误消失。
如何在Android Room中附加数据库并进行跨数据库查询?
2条答案
按热度按时间cgyqldqp1#
在我的例子中,我从Firebase下载了一个包含一些数据的database.db文件,并与本地数据库合并
只要记住,如果执行ATTACH语句,ROOM将禁用Write-Ahead Logging(WAL)。因此,如果经常使用ATTACH语句,可以在创建数据库时禁用WAL。
在我的例子中,我只使用了一次ATTACH语句来用最新的值更新数据库。所以,我在交易后重新启用WAL。
j0pj023g2#
您可以在onOpen回调中附加其他数据库。有关详细信息,请参阅另一篇文章here的答案。