Android 房间 rawquery 问题
Posted
技术标签:
【中文标题】Android 房间 rawquery 问题【英文标题】:Android room rawquery issue 【发布时间】:2020-12-02 20:17:20 【问题描述】:我想实现 android Room 持久化。 这是我的 DAO 接口。
@Dao
interface FoodDao
/**
* Returns all data in table for Paging
*
* @param query a dynamic SQL query
*/
@RawQuery
fun getAll(query: SupportSQLiteQuery): DataSource.Factory<Int, Food>
由于某种原因,我有这个编译错误:
错误:可观察的查询返回类型(LiveData、Flowable、DataSource、DataSourceFactory 等)只能用于直接或间接(例如,通过@Relation)访问至少一个表的 SELECT 查询。对于@RawQuery,您应该通过observedEntities 字段指定要观察的表列表。
公共抽象 androidx.paging.DataSource.Factory
【问题讨论】:
【参考方案1】:您必须指定观察到的实体:
@RawQuery(observedEntities = [Food::class])
查看更多:https://developer.android.com/reference/androidx/room/RawQuery#observedEntities()
【讨论】:
以上是关于Android 房间 rawquery 问题的主要内容,如果未能解决你的问题,请参考以下文章
调用database.rawQuery时的Android SQLiteMisuseException
Android SQLite:哪个查询(“query”或“rawQuery”)更快?
SELECT .. WHERE ... IN 在 Android 上使用 rawQuery